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

@ -185,7 +185,11 @@ public class AbnormalBillController {
result = abnormalBillService.getQCAbnormal();
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")
public R getAbnormalByConditionalPage(FrontPage frontPage,@RequestParam(required = false) Map paramMap){
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 getAbnormalSFCPage(IPage page, @Param("paramMap")Map<String,String> paramMap,@Param("keyword")String keyword);
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 getAbnormalSFCPage(IPage page,Map paramMap,String keyword);
/**
* @param sfcDto
* sfc

@ -1348,6 +1348,12 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
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
* sfc

@ -1262,6 +1262,11 @@
ORDER BY zab.CREATED_DATE_TIME DESC
</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 wct.DESCRIPTION WORKCENTER,so.SHOP_ORDER SHOPORDER ,
it.DESCRIPTION ITEM,

@ -97,16 +97,25 @@ public class ShopOrderReleaseController {
@ResponseBody
@PostMapping("shopOrderRelease")
public R shopOrderRelease(@RequestBody List<ShopOrderRelease> shopOrderList) {
Boolean flag;
StringBuffer message = new StringBuffer();
try {
String site = CommonMethods.getSite();
String user = CommonMethods.getUser();
shopOrderReleaseService.shopOrderRelease(site, user, shopOrderList);
flag=shopOrderReleaseService.shopOrderRelease(site, user, message, shopOrderList);
} catch (Exception e) {
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 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
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) {
throw new BaseException("请至少选择一笔需要下达的工单");
}
//工单标准服务
ShopOrderServiceInterface shopOrderServiceInterface = null;
try {
@ -143,14 +141,19 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
} catch (ClassNotFoundException ex) {
throw BusinessException.build("获取ME标准服务失败");
}
int seq = 0;
boolean flag = true;
for (ShopOrderRelease shopOrderReleaseModel : shopOrderList) {
//查询工单信息
String shopOrder = shopOrderReleaseModel.getShopOrder();
String shopOrderBo = shopOrderReleaseModel.getShopOrderBo();
ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo);
if (shopOrderModel == null) {
throw new BaseException("工单[" + shopOrder + "]不存在");
flag =false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("工单[" + shopOrder + "]不存在");
continue;
// throw new BaseException("工单[" + shopOrder + "]不存在");
}
// 校验工单对应的工单BOM是否更新了组件数据
@ -161,24 +164,40 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
BigDecimal qtyToBuild = new BigDecimal(shopOrderModel.getQtyToBuild());
BigDecimal qtyReleased = new BigDecimal(shopOrderModel.getQtyReleased());
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) {
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);
//查询工艺路线
Router routerModel = routerService.getCurrentRouter(routerBo);
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();
//查询工艺路线详细
List<RouterDTO> routerList = shopOrderReleaseMapper.selectShopOrderRouter(routerBo);
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);
response = shopOrderServiceInterface.releaseShopOrder(request);
} 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) {
// flag =false;
// message.append(seq++ % 3 == 0 ? "\n" : "| |");
// message.append("工单下达失败:调用标准接口处理异常");
// continue;
throw new BaseException("工单下达失败:调用标准接口处理异常");
}
List<ReleasedSfc> sfcList = response.getReleasedSfcList();
if (sfcList == null || sfcList.size() <= 0) {
// flag =false;
// message.append(seq++ % 3 == 0 ? "\n" : "| |");
// message.append("工单下达失败:获取生产批次清单为空");
// continue;
throw new BaseException("工单下达失败:获取生产批次清单为空");
}
@ -218,7 +249,8 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
updateShopOrder.setPlannedWorkCenterBo(workCenterBo);
shopOrderService.updateById(updateShopOrder);
}*/
} //end for shopOrderList
}
return flag;//end for shopOrderList
}

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

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

@ -46,7 +46,9 @@
<result column="RESRCE" property="resrce" />
<result column="EMPLOYEE_DESCRIPTION" property="employeeDescription" />
<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>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
@ -669,20 +671,28 @@
SELECT * FROM (
SELECT S.SITE,PREZSD.EMPLOYEE_DESCRIPTION,
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,
S.SFC,S.QTY,IT.DESCRIPTION ITEM_DESCRIPTION,S.ITEM_BO,S.SHOP_ORDER_BO
ELSE '未完成' END LAST_OPERATION_STATUS,
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
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
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 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'
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 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')
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'
order by zsd.PLANNED_COMP_DATE asc
) T
WHERE T.SITE = #{ew.entity.site}
<if test="globalQuery!=null and globalQuery!=''">
@ -695,6 +705,7 @@
</otherwise>
</choose>
</if>
</select>

Loading…
Cancel
Save