报废产品条码查询
工单整理下达
生产操作员面板(产品条码选择 添加列)
master
limy135302065 3 years ago
parent 0bcd604c1c
commit 4757cf4ded

@ -185,7 +185,11 @@ public class AbnormalBillController {
result = abnormalBillService.getQCAbnormal(); result = abnormalBillService.getQCAbnormal();
return R.ok(result); return R.ok(result);
} }
@GetMapping("getAbnormalSFCPage")
public R getAbnormalSFCPage(FrontPage frontPage,@RequestParam(required = false) Map paramMap){
String globalQuery = frontPage.getGlobalQuery();
return R.ok(abnormalBillService.getAbnormalSFCPage(frontPage.getPagePlus(),paramMap,globalQuery));
}
@GetMapping("getAbnormalByConditionalPage") @GetMapping("getAbnormalByConditionalPage")
public R getAbnormalByConditionalPage(FrontPage frontPage,@RequestParam(required = false) Map paramMap){ public R getAbnormalByConditionalPage(FrontPage frontPage,@RequestParam(required = false) Map paramMap){
String globalQuery = frontPage.getGlobalQuery(); String globalQuery = frontPage.getGlobalQuery();

@ -46,5 +46,6 @@ public interface AbnormalBillMapper extends BaseMapper<AbnormalBill> {
IPage getAbnormalByConditional(IPage page, @Param("paramMap")Map<String,String> paramMap,@Param("keyword")String keyword); IPage getAbnormalByConditional(IPage page, @Param("paramMap")Map<String,String> paramMap,@Param("keyword")String keyword);
IPage getAbnormalSFCPage(IPage page, @Param("paramMap")Map<String,String> paramMap,@Param("keyword")String keyword);
Map<String,String> findReplaceMessageByAbnormal(@Param("abnormalBill")AbnormalBill abnormalBill); Map<String,String> findReplaceMessageByAbnormal(@Param("abnormalBill")AbnormalBill abnormalBill);
} }

@ -145,6 +145,7 @@ public interface AbnormalBillService extends IService<AbnormalBill> {
IPage getAbnormalByConditionalPage(IPage page,Map paramMap,String keyword); IPage getAbnormalByConditionalPage(IPage page,Map paramMap,String keyword);
IPage getAbnormalSFCPage(IPage page,Map paramMap,String keyword);
/** /**
* @param sfcDto * @param sfcDto
* sfc * sfc

@ -1348,6 +1348,12 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
return abnormalBillMapper.getAbnormalByConditional(page,paramMap,keyword); return abnormalBillMapper.getAbnormalByConditional(page,paramMap,keyword);
} }
@Override
public IPage getAbnormalSFCPage(IPage page, Map paramMap, String keyword) {
paramMap.put("site",CommonMethods.getSite());
return abnormalBillMapper.getAbnormalSFCPage(page,paramMap,keyword);
}
/** /**
* @param sfcDto * @param sfcDto
* sfc * sfc

@ -1262,6 +1262,11 @@
ORDER BY zab.CREATED_DATE_TIME DESC ORDER BY zab.CREATED_DATE_TIME DESC
</select> </select>
<select id="getAbnormalSFCPage" resultMap="BaseResultMap">
SELECT ZAB.SFC,ZAB.ITEM_BO,ZAB.SHOP_ORDER,ZAB.NC_QTY FROM Z_ABNORMAL_BILL ZAB
LEFT JOIN Z_ABNORMAL_BILL_DISPOSE ZABD ON ZAB.HANDLE = ZABD.ABNORMAL_BILL_BO
WHERE ZABD.ABNORMAL_METHOD='C' AND ZAB.SFC IS NOT NULL
</select>
<select id="findReplaceMessageByAbnormal" resultType="java.util.HashMap"> <select id="findReplaceMessageByAbnormal" resultType="java.util.HashMap">
SELECT wct.DESCRIPTION WORKCENTER,so.SHOP_ORDER SHOPORDER , SELECT wct.DESCRIPTION WORKCENTER,so.SHOP_ORDER SHOPORDER ,
it.DESCRIPTION ITEM, it.DESCRIPTION ITEM,

@ -97,16 +97,25 @@ public class ShopOrderReleaseController {
@ResponseBody @ResponseBody
@PostMapping("shopOrderRelease") @PostMapping("shopOrderRelease")
public R shopOrderRelease(@RequestBody List<ShopOrderRelease> shopOrderList) { public R shopOrderRelease(@RequestBody List<ShopOrderRelease> shopOrderList) {
Boolean flag;
StringBuffer message = new StringBuffer();
try { try {
String site = CommonMethods.getSite(); String site = CommonMethods.getSite();
String user = CommonMethods.getUser(); String user = CommonMethods.getUser();
shopOrderReleaseService.shopOrderRelease(site, user, shopOrderList); flag=shopOrderReleaseService.shopOrderRelease(site, user, message, shopOrderList);
} catch (Exception e) { } catch (Exception e) {
return R.failed(e.getMessage()); return R.failed(e.getMessage());
} }
return R.ok(); if (flag) {
message.insert(0, "工单下达成功");
return R.ok(message.toString());
} else {
message.insert(0, "工单下达失败:");
return R.failed(message.toString());
}
// return R.ok();
} }

@ -62,7 +62,7 @@ public interface ShopOrderReleaseService {
* @param user * @param user
* @param shopOrderList * @param shopOrderList
*/ */
void shopOrderRelease(String site, String user, List<ShopOrderRelease> shopOrderList); boolean shopOrderRelease(String site, String user,StringBuffer message, List<ShopOrderRelease> shopOrderList);
/** /**
* - * -

@ -130,12 +130,10 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
} }
@Override @Override
public void shopOrderRelease(String site, String user, List<ShopOrderRelease> shopOrderList) { public boolean shopOrderRelease(String site, String user,StringBuffer message, List<ShopOrderRelease> shopOrderList) {
if (shopOrderList == null || shopOrderList.size() <= 0) { if (shopOrderList == null || shopOrderList.size() <= 0) {
throw new BaseException("请至少选择一笔需要下达的工单"); throw new BaseException("请至少选择一笔需要下达的工单");
} }
//工单标准服务 //工单标准服务
ShopOrderServiceInterface shopOrderServiceInterface = null; ShopOrderServiceInterface shopOrderServiceInterface = null;
try { try {
@ -143,14 +141,19 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
} catch (ClassNotFoundException ex) { } catch (ClassNotFoundException ex) {
throw BusinessException.build("获取ME标准服务失败"); throw BusinessException.build("获取ME标准服务失败");
} }
int seq = 0;
boolean flag = true;
for (ShopOrderRelease shopOrderReleaseModel : shopOrderList) { for (ShopOrderRelease shopOrderReleaseModel : shopOrderList) {
//查询工单信息 //查询工单信息
String shopOrder = shopOrderReleaseModel.getShopOrder(); String shopOrder = shopOrderReleaseModel.getShopOrder();
String shopOrderBo = shopOrderReleaseModel.getShopOrderBo(); String shopOrderBo = shopOrderReleaseModel.getShopOrderBo();
ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo); ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo);
if (shopOrderModel == null) { if (shopOrderModel == null) {
throw new BaseException("工单[" + shopOrder + "]不存在"); flag =false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("工单[" + shopOrder + "]不存在");
continue;
// throw new BaseException("工单[" + shopOrder + "]不存在");
} }
// 校验工单对应的工单BOM是否更新了组件数据 // 校验工单对应的工单BOM是否更新了组件数据
@ -161,24 +164,40 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
BigDecimal qtyToBuild = new BigDecimal(shopOrderModel.getQtyToBuild()); BigDecimal qtyToBuild = new BigDecimal(shopOrderModel.getQtyToBuild());
BigDecimal qtyReleased = new BigDecimal(shopOrderModel.getQtyReleased()); BigDecimal qtyReleased = new BigDecimal(shopOrderModel.getQtyReleased());
if (!"501".equals(StringUtils.trimHandle(statusBo))) { if (!"501".equals(StringUtils.trimHandle(statusBo))) {
throw new BaseException("工单[" +shopOrder+ "]不是可下达状态"); flag =false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("工单[" +shopOrder+ "]不是可下达状态");
continue;
// throw new BaseException("工单[" +shopOrder+ "]不是可下达状态");
} }
if (qtyReleased.compareTo(qtyToBuild) >= 0) { if (qtyReleased.compareTo(qtyToBuild) >= 0) {
throw new BaseException("工单[" +shopOrder+ "]没有可用下达数量"); flag =false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("工单[" +shopOrder+ "]没有可用下达数量");
continue;
// throw new BaseException("工单[" +shopOrder+ "]没有可用下达数量");
} }
BigDecimal qtyToRelease = qtyToBuild.subtract(qtyReleased); BigDecimal qtyToRelease = qtyToBuild.subtract(qtyReleased);
//查询工艺路线 //查询工艺路线
Router routerModel = routerService.getCurrentRouter(routerBo); Router routerModel = routerService.getCurrentRouter(routerBo);
if (routerModel == null) { if (routerModel == null) {
throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]不存在"); flag =false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]不存在");
continue;
// throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]不存在");
} }
routerBo = routerModel.getHandle(); routerBo = routerModel.getHandle();
//查询工艺路线详细 //查询工艺路线详细
List<RouterDTO> routerList = shopOrderReleaseMapper.selectShopOrderRouter(routerBo); List<RouterDTO> routerList = shopOrderReleaseMapper.selectShopOrderRouter(routerBo);
if (routerList == null || routerList.size() <= 0) { if (routerList == null || routerList.size() <= 0) {
throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]主数据不完整,请确认"); flag =false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]主数据不完整,请确认");
continue;
// throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]主数据不完整,请确认");
} }
//工单下达 //工单下达
@ -189,14 +208,26 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
request.setQuantityToRelease(qtyToRelease); request.setQuantityToRelease(qtyToRelease);
response = shopOrderServiceInterface.releaseShopOrder(request); response = shopOrderServiceInterface.releaseShopOrder(request);
} catch (Exception e) { } catch (Exception e) {
ExceptionUtil.throwException(e); flag=false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append(e.getMessage());
continue;
// ExceptionUtil.throwException(e);
} }
if (response == null) { if (response == null) {
// flag =false;
// message.append(seq++ % 3 == 0 ? "\n" : "| |");
// message.append("工单下达失败:调用标准接口处理异常");
// continue;
throw new BaseException("工单下达失败:调用标准接口处理异常"); throw new BaseException("工单下达失败:调用标准接口处理异常");
} }
List<ReleasedSfc> sfcList = response.getReleasedSfcList(); List<ReleasedSfc> sfcList = response.getReleasedSfcList();
if (sfcList == null || sfcList.size() <= 0) { if (sfcList == null || sfcList.size() <= 0) {
// flag =false;
// message.append(seq++ % 3 == 0 ? "\n" : "| |");
// message.append("工单下达失败:获取生产批次清单为空");
// continue;
throw new BaseException("工单下达失败:获取生产批次清单为空"); throw new BaseException("工单下达失败:获取生产批次清单为空");
} }
@ -218,7 +249,8 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
updateShopOrder.setPlannedWorkCenterBo(workCenterBo); updateShopOrder.setPlannedWorkCenterBo(workCenterBo);
shopOrderService.updateById(updateShopOrder); shopOrderService.updateById(updateShopOrder);
}*/ }*/
} //end for shopOrderList }
return flag;//end for shopOrderList
} }

@ -85,6 +85,7 @@
<if test="workCenter != null and workCenter != ''"> <if test="workCenter != null and workCenter != ''">
AND MVP.WORK_CENTER = #{workCenter} AND MVP.WORK_CENTER = #{workCenter}
</if> </if>
ORDER BY MVP.SHOP_ORDER
</select> </select>
<select id="selectShopOrderRouter" resultType="com.foreverwin.mesnac.dispatch.dto.RouterDTO"> <select id="selectShopOrderRouter" resultType="com.foreverwin.mesnac.dispatch.dto.RouterDTO">

@ -25,8 +25,18 @@ public class SfcDto extends Sfc {
//工作令号 //工作令号
private String workOrder; private String workOrder;
private String employeeDescription; private String employeeDescription;
private String preWorkOrderResult;
private String lastOperationStatus; private String lastOperationStatus;
public String getPreWorkOrderResult() {
return preWorkOrderResult;
}
public void setPreWorkOrderResult(String preWorkOrderResult) {
this.preWorkOrderResult = preWorkOrderResult;
}
public String getSeq() { public String getSeq() {
return seq; return seq;
} }

@ -46,7 +46,9 @@
<result column="RESRCE" property="resrce" /> <result column="RESRCE" property="resrce" />
<result column="EMPLOYEE_DESCRIPTION" property="employeeDescription" /> <result column="EMPLOYEE_DESCRIPTION" property="employeeDescription" />
<result column="LAST_OPERATION_STATUS" property="lastOperationStatus" /> <result column="LAST_OPERATION_STATUS" property="lastOperationStatus" />
<result column="LAST_OPERATION_STATUS" property="lastOperationStatus" />
<result column="PRE_WORKORDER_RESULT" property="preWorkOrderResult"/>
<result column="PLANNED_COMP_DATE" property="plannedCompDate"/>
</resultMap> </resultMap>
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
@ -669,20 +671,28 @@
SELECT * FROM ( SELECT * FROM (
SELECT S.SITE,PREZSD.EMPLOYEE_DESCRIPTION, SELECT S.SITE,PREZSD.EMPLOYEE_DESCRIPTION,
CASE WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '完成' CASE WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '完成'
ELSE '未完成' END LAST_OPERATION_STATUS,SS.STEP_ID CURRENT_STEP_ID,zsd.STEP_ID, ELSE '未完成' END LAST_OPERATION_STATUS,
S.SFC,S.QTY,IT.DESCRIPTION ITEM_DESCRIPTION,S.ITEM_BO,S.SHOP_ORDER_BO CASE WHEN ZIT.RESULT='OK' THEN '合格' WHEN ZIT.RESULT='NG' THEN '不合格' ELSE '未检验' END PRE_WORKORDER_RESULT
,SS.STEP_ID CURRENT_STEP_ID,OT.DESCRIPTION OPERATION_DESCRIPTION,zsd.STEP_ID,
S.SFC,S.QTY,IT.DESCRIPTION ITEM_DESCRIPTION,S.ITEM_BO,S.SHOP_ORDER_BO,zsd.PLANNED_COMP_DATE
FROM SFC S FROM SFC S
LEFT JOIN ITEM_T IT ON S.ITEM_BO=IT.ITEM_BO AND IT.LOCALE=#{locale} LEFT JOIN ITEM_T IT ON S.ITEM_BO=IT.ITEM_BO AND IT.LOCALE=#{locale}
JOIN Z_SFC_DISPATCH zsd ON S.SFC=zsd.SFC AND S.SITE=zsd.SITE JOIN Z_SFC_DISPATCH zsd ON S.SFC=zsd.SFC AND S.SITE=zsd.SITE
LEFT JOIN Z_SFC_DISPATCH PREZSD ON zsd.SFC=PREZSD.SFC AND PREZSD.DISPATCH_SEQ=TO_NUMBER(zsd.DISPATCH_SEQ)-1 AND zsd.ROUTER_BO=PREZSD.ROUTER_BO LEFT JOIN Z_SFC_DISPATCH PREZSD ON zsd.SFC=PREZSD.SFC AND PREZSD.DISPATCH_SEQ=TO_NUMBER(zsd.DISPATCH_SEQ)-1 AND zsd.ROUTER_BO=PREZSD.ROUTER_BO
LEFT JOIN Z_INSPECTION_TASK ZIT ON zsd.SFC=ZIT.SFC AND zsd.PREPOSITION_STEP_ID=ZIT.STEP_ID
JOIN Z_PROD_READY_TASK zprt ON ZPRT.SFC_DISPATCH_BO=zsd.HANDLE JOIN Z_PROD_READY_TASK zprt ON ZPRT.SFC_DISPATCH_BO=zsd.HANDLE
JOIN SFC_ROUTING SR ON SR.SFC_BO=S.HANDLE JOIN SFC_ROUTING SR ON SR.SFC_BO=S.HANDLE
JOIN SFC_ROUTER SR2 ON SR.HANDLE =SR2.SFC_ROUTING_BO AND SR2.IN_USE = 'true' JOIN SFC_ROUTER SR2 ON SR.HANDLE =SR2.SFC_ROUTING_BO AND SR2.IN_USE = 'true'
LEFT JOIN SFC_STEP SS ON SR2.HANDLE =SS.SFC_ROUTER_BO AND (SS.QTY_IN_QUEUE>0 or SS.QTY_IN_WORK>0) LEFT JOIN SFC_STEP SS ON SR2.HANDLE =SS.SFC_ROUTER_BO AND (SS.QTY_IN_QUEUE>0 or SS.QTY_IN_WORK>0)
JOIN SFC_STEP SSS ON SR2.HANDLE =SSS.SFC_ROUTER_BO AND SSS.STEP_ID = ZSD.STEP_ID AND SSS.BYPASSED = 'false' JOIN SFC_STEP SSS ON SR2.HANDLE =SSS.SFC_ROUTER_BO AND SSS.STEP_ID = ZSD.STEP_ID AND SSS.BYPASSED = 'false'
JOIN Z_SFC_DISPATCH OPZSD ON OPZSD.STEP_ID = SS.STEP_ID AND ZPRT.SFC = OPZSD.SFC
LEFT JOIN OPERATION O ON OPZSD.OPERATION = O.OPERATION
LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO
WHERE S.SITE=#{ew.entity.site} AND ZSD.RESRCE=#{ew.entity.resrce} AND (ZSD.DISPATCH_STATUS='RELEASE' OR ZSD.DISPATCH_STATUS='START') WHERE S.SITE=#{ew.entity.site} AND ZSD.RESRCE=#{ew.entity.resrce} AND (ZSD.DISPATCH_STATUS='RELEASE' OR ZSD.DISPATCH_STATUS='START')
AND S.STATUS_BO IN ('StatusBO:'||#{ew.entity.site}||',401','StatusBO:'||#{ew.entity.site}||',402','StatusBO:'||#{ew.entity.site}||',403','StatusBO:'||#{ew.entity.site}||',404') AND S.STATUS_BO IN ('StatusBO:'||#{ew.entity.site}||',401','StatusBO:'||#{ew.entity.site}||',402','StatusBO:'||#{ew.entity.site}||',403','StatusBO:'||#{ew.entity.site}||',404')
AND zprt.STATUS='FINISH' AND ZPRT."RESULT"='OK' AND zprt.STATUS='FINISH' AND ZPRT."RESULT"='OK'
order by zsd.PLANNED_COMP_DATE asc
) T ) T
WHERE T.SITE = #{ew.entity.site} WHERE T.SITE = #{ew.entity.site}
<if test="globalQuery!=null and globalQuery!=''"> <if test="globalQuery!=null and globalQuery!=''">
@ -695,6 +705,7 @@
</otherwise> </otherwise>
</choose> </choose>
</if> </if>
</select> </select>

Loading…
Cancel
Save