From 07a039a9e7d86e5fa65e1a8624b55d8d41b9738f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=98=89=E4=BC=9F?= <1724121454@qq.com> Date: Thu, 26 Aug 2021 23:33:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BA=A7=E5=93=81=E6=8A=A5=E5=BA=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AbnormalBillController.java | 26 ++++---- .../anomaly/mapper/AbnormalBillMapper.java | 5 +- .../service/impl/AbnormalBillServiceImpl.java | 65 ++++++++++++++++--- .../resources/mapper/AbnormalBillMapper.xml | 55 +++++++++++----- .../mesnac/common/service/AnomalyService.java | 5 +- .../dispatch/mapper/SfcDispatchMapper.java | 8 ++- .../service/impl/SfcDispatchServiceImpl.java | 2 +- .../resources/mapper/SfcDispatchMapper.xml | 17 ++--- .../meapi/service/impl/NcCodeServiceImpl.java | 3 + .../controller/SfcScrapController.java | 6 +- .../production/mapper/SplitSfcMapper.java | 1 + .../production/service/SfcScrapService.java | 5 ++ .../service/impl/SfcScrapServiceImpl.java | 16 +++-- .../service/impl/SplitSfcServiceImpl.java | 3 + .../main/resources/mapper/SplitSfcMapper.xml | 1 + 15 files changed, 159 insertions(+), 59 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java index 83ccdbc6..ce4ac105 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java @@ -220,7 +220,7 @@ public class AbnormalBillController { try{ return R.ok(abnormalBillService.anomalyReport(abnormalBill, abnormalBillDispose,ncGroupAndNcCodes,dutyCauseType,dutyType)); }catch(Exception e){ - return R.failed("质量异常提报失败,"+e.getMessage()); + return R.failed("质量异常提报失败:"+e.getMessage()); } } @@ -234,7 +234,7 @@ public class AbnormalBillController { try{ return R.ok(abnormalBillService.anomalyReportDevice(abnormalBill,abnormalBillDispose)); }catch (Exception e){ - return R.failed("设备异常提报失败,"+e.getMessage()); + return R.failed("设备异常提报失败:"+e.getMessage()); } } @@ -251,7 +251,7 @@ public class AbnormalBillController { try{ return R.ok( abnormalBillService.cancelBrowse(handle,cancelBrowse,code,cancelSendUserGroup)); }catch(Exception e){ - return R.failed("取消失败,"+e.getMessage()); + return R.failed("取消失败:"+e.getMessage()); } } @@ -260,7 +260,7 @@ public class AbnormalBillController { try{ return R.ok(abnormalBillService.backLog(abnormalBillDto)); }catch(Exception e){ - return R.failed("检索失败,"+e.getMessage()); + return R.failed("检索失败:"+e.getMessage()); } } @@ -275,7 +275,7 @@ public class AbnormalBillController { try{ return R.ok(abnormalBillService.findAllByAbnormalNo(abnormalBill)); }catch (Exception e){ - return R.failed("检索失败,"+e.getMessage()); + return R.failed("检索失败:"+e.getMessage()); } } @@ -288,7 +288,7 @@ public class AbnormalBillController { try{ return R.ok(abnormalBillService.findAllByAbnormalNoDevice(abnormalBill)); }catch (Exception e){ - return R.failed("设备异常响应检索失败,"+e.getMessage()); + return R.failed("设备异常响应检索失败:"+e.getMessage()); } } @@ -304,7 +304,7 @@ public class AbnormalBillController { abnormalBillService.resProcessing(abnormalBill); return R.ok(); }catch(Exception e){ - return R.failed("响应处理失败,"+e.getMessage()); + return R.failed("响应处理失败:"+e.getMessage()); } } @@ -320,7 +320,7 @@ public class AbnormalBillController { abnormalBillService.programConfirm(abnormalBill,abnormalBillDispose); return R.ok(); }catch (Exception e){ - return R.failed("方案确认失败,"+e.getMessage()); + return R.failed("方案确认失败:"+e.getMessage()); } } @@ -338,7 +338,7 @@ public class AbnormalBillController { abnormalBillService.dutyConfirm(abnormalBill,abnormalBillDispose,dutyCauseType,dutyType); return R.ok(); }catch(Exception e){ - return R.failed("判责提交失败,"+e.getMessage()); + return R.failed("判责提交失败:"+e.getMessage()); } } @@ -354,7 +354,7 @@ public class AbnormalBillController { abnormalBillService.anomalyShutDown(abnormalBill,abnormalBillDispose); return R.ok(); }catch (Exception e){ - return R.failed("闭环关闭失败,"+e.getMessage()); + return R.failed("闭环关闭失败:"+e.getMessage()); } } @@ -364,7 +364,7 @@ public class AbnormalBillController { try{ return R.ok(sfcDispatchCommonService.findResrceBySfc(sfcDispatch)); }catch (Exception e){ - return R.failed("根据sfc查找设备失败,"+e.getMessage()); + return R.failed("根据sfc查找设备失败:"+e.getMessage()); } } @@ -373,7 +373,7 @@ public class AbnormalBillController { try{ return R.ok(fileUploadedService.showFile(request,response)); }catch (Exception e){ - return R.failed("显示图片失败,"+e.getMessage()); + return R.failed("显示图片失败:"+e.getMessage()); } } @@ -384,7 +384,7 @@ public class AbnormalBillController { fileUploadedService.deleteFile(ftpPath,fileName); return R.ok(); }catch (Exception e){ - return R.failed("图片删除失败,"+e.getMessage()); + return R.failed("图片删除失败:"+e.getMessage()); } } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java index a13d38a5..8109ce9b 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java @@ -5,6 +5,7 @@ import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto; import com.foreverwin.mesnac.anomaly.model.AbnormalBill; import com.foreverwin.mesnac.common.dto.ScrapDto; import com.foreverwin.mesnac.meapi.model.UserGroup; +import com.foreverwin.mesnac.production.model.SplitSfc; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -35,9 +36,9 @@ public interface AbnormalBillMapper extends BaseMapper { List findCountBySfc(@Param("site")String site, @Param("type")String type, @Param("sfc")String sfc, @Param("status")List status); - Integer findAbnormalMethodBySFC(@Param("site")String site,@Param("sfc")String sfc); + String findAbnormalMethodBySFC(@Param("site")String site,@Param("abnormalBo")String abnormalBo,@Param("sfc")String sfc); - List findScrapDtoBySfc(@Param("site")String site, @Param("sfc")String sfc); + List findScrapDtoBySfc(@Param("site")String site, @Param("mainSfc")String mainSfc,@Param("splitSfc")List splitSfc); List getQCAbnormalList(@Param("site") String site); diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java index f2596b46..cd1e14fd 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java @@ -29,6 +29,8 @@ import com.foreverwin.mesnac.meapi.mapper.*; import com.foreverwin.mesnac.meapi.model.*; import com.foreverwin.mesnac.meapi.service.*; import com.foreverwin.mesnac.meapi.util.StringUtils; +import com.foreverwin.mesnac.production.model.SplitSfc; +import com.foreverwin.mesnac.production.service.SplitSfcService; import com.foreverwin.mesnac.quality.service.SelfReportService; import com.foreverwin.modular.core.exception.BaseException; import com.foreverwin.modular.core.exception.BusinessException; @@ -140,7 +142,10 @@ public class AbnormalBillServiceImpl extends ServiceImpl getScrapDtoBysfc(String site, String sfc) { - //判断该产品条码是否已经报废 - if(this.jgProductionIsScrap(site,sfc)){ + public List getScrapDtoBysfc(String abnormalNo, String site, String sfc) { + if(StringUtil.isBlank(site)){ + site = CommonMethods.getSite(); + } + //根据用户提报上来的sfc和异常单查找主SFC + String mainSfc = this.jgProductionIsScrap(abnormalNo, site, sfc); + + List splitSfcs = null; + SplitSfc splitSfc = new SplitSfc(); + splitSfc.setSite(site); + + //判断能否找到该主sfc。 + if(StringUtil.isBlank(mainSfc)){ + //判断该用户提报上来的sfc是否为空 + if(StringUtil.isBlank(sfc)){ + throw new BaseException("该异常单下没有报废的产品条码"); + } + + //如果不为空,则判断根据这个sfc能从Z_SPLIT_SFC表中查找到主SFC吗,然后在判断主SFC是否已经报废 + splitSfc.setSplitSfc(sfc); + splitSfcs = splitSfcService.selectList(splitSfc); + if(splitSfcs.size()>0){ + mainSfc = this.jgProductionIsScrap(abnormalNo, site, splitSfcs.get(0).getSfc()); + }else{ + if(!StringUtil.isBlank(sfc) && !StringUtil.isBlank(abnormalNo)){ + throw new BaseException("该异常单下的产品条码不是报废"); + } + throw new BaseException("该产品条码的异常方案不是报废"); + } + }else if(StringUtil.isBlank(sfc)){ + //根据异常单找到了主sfc,并且sfc参数为空,找到异常单主sfc下拆分的次sfc + splitSfc.setSfc(mainSfc); + splitSfcs = splitSfcService.selectList(splitSfc); + } + List scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, mainSfc,splitSfcs); + //如果用户提报上来的sfc不为空,并且不是主sfc,则把主sfc从scrapDtoBySfc去掉 + if(!StringUtil.isBlank(sfc) && !sfc.equals(mainSfc)){ + for(ScrapDto scrap:scrapDtoBySfc){ + if(scrap.getSfc().equals(mainSfc)){ + scrapDtoBySfc.remove(scrap); + break; + } + } + } + if(scrapDtoBySfc.size() <= 0){ throw new BaseException("该产品条码的异常方案不是报废"); } - List scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, sfc); return scrapDtoBySfc; } diff --git a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml index 110d9dc5..f8a6c614 100644 --- a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml +++ b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml @@ -1081,17 +1081,34 @@ - + SELECT zabv.SFC FROM Z_ABNORMAL_BILL_VIEW zabv - WHERE SITE = #{site} AND SFC = #{sfc} AND ABNORMAL_METHOD = 'C' + INNER JOIN (SELECT MAX(ZAB.HANDLE) HANDLE FROM Z_ABNORMAL_BILL_VIEW ZAB WHERE + ZAB.SITE = #{site} + + AND ZAB.SFC = #{sfc} + + + AND ZAB.HANDLE = #{abnormalBo} + + ) ZAB ON ZAB.HANDLE = zabv.HANDLE + WHERE zabv.SITE = #{site} + + AND zabv.SFC = #{sfc} + + + AND zabv.HANDLE = #{abnormalBo} + + AND ABNORMAL_METHOD = 'C' + diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java index f3a65186..ed2f0609 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java @@ -27,15 +27,16 @@ public interface AnomalyService { /** * 判断产品条码在质量异常中是否为报废 + * @Param abnormalNo * @param sfc * @return */ - boolean jgProductionIsScrap(String site,String sfc); + String jgProductionIsScrap(String abnormalNo,String site,String sfc); /** * 检索 */ - List getScrapDtoBysfc(String site, String sfc); + List getScrapDtoBysfc(String abnormalNo,String site, String sfc); void anomalyReveseRepairShutDown(String abnormalNo); diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java index 7fded5a0..56caa9cc 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java @@ -46,7 +46,13 @@ public interface SfcDispatchMapper extends BaseMapper { @Param("modifyUser") String modifyUser, @Param("modifiedDateTime") LocalDateTime modifiedDateTime); - SfcDispatchDto findResrceBySfc(@Param("sfcDispatch")SfcDispatchDto sfcDispatch, @Param("site") String site, @Param("array") String[] array); + /** + * + * @param sfcDispatch + * @param site + * @return + */ + SfcDispatchDto findResrceBySfc(@Param("sfcDispatch")SfcDispatchDto sfcDispatch, @Param("site") String site); SfcDispatchDto findSfcDispatchBySfc(@Param("site")String site, @Param("dto")SfcDispatchDto sfcDispatch); diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java index 3f657297..680b3089 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java @@ -693,7 +693,7 @@ public class SfcDispatchServiceImpl extends ServiceImpl SITE = #{site} - - - AND SFC = #{sfcDispatch.sfc} - - - + AND RESRCE IS NOT NULL + AND SFC = #{sfcDispatch.sfc} + AND MODIFIED_DATE_TIME = ( + SELECT MAX(zsd2.MODIFIED_DATE_TIME) FROM Z_SFC_DISPATCH zsd2 + WHERE SFC=#{sfcDispatch.sfc} AND zsd2.RESRCE IS NOT NULL + ) + @@ -808,7 +809,7 @@ - SELECT FROM Z_SFC_DISPATCH WHERE SITE = #{site} AND SFC = #{sfc} AND TO_NUMBER(STEP_ID) >= #{stepId} diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java index 10d4c511..54885741 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java @@ -84,6 +84,9 @@ public class NcCodeServiceImpl extends ServiceImpl impleme @Override public List findNcCodeDescriptionByNcCode(String ncCode) { String site = CommonMethods.getSite(); + if(StringUtils.isBlank(ncCode)){ + return null; + } String locale = LocaleContextHolder.getLocale().getLanguage(); String[] split = ncCode.split(","); diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java index eb582857..4158f1a5 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java @@ -138,11 +138,11 @@ public class SfcScrapController { * @return */ @GetMapping("/getScrapDtoBysfc") - public R getScrapDtoBysfc(String site,String sfc){ + public R getScrapDtoBysfc(String site,String abnormalNo,String sfc){ try{ - return R.ok(anomalyService.getScrapDtoBysfc(site,sfc)); + return R.ok(anomalyService.getScrapDtoBysfc(abnormalNo,site,sfc)); }catch (Exception e){ - return R.failed("产品报废检索报错"+e.getMessage()); + return R.failed("产品报废检索报错:"+e.getMessage()); } } diff --git a/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java index 4ef0f0ca..4ca6d14e 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java @@ -21,4 +21,5 @@ public interface SplitSfcMapper extends BaseMapper { SfcDto getSfcData(@Param("handle") String handle); SplitSfcDto getAbnormalQty(@Param("site") String site, @Param("sfc") String sfc, @Param("operation") String operation,@Param("abnormalNo") String abnormalNo); + } \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java index 8903d827..46ac41b1 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java @@ -29,6 +29,11 @@ public interface SfcScrapService extends IService { List selectList(SfcScrap sfcScrap); + /** + * 报废sfc,报废SFC的全部数量 + * @param param + * @return + */ List scrap(HashMap param) ; public void generatorWord(String shopOrder, String sfc, HttpServletResponse response, HttpServletRequest request); diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java index d0124891..6be7d012 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java @@ -12,6 +12,7 @@ import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.mapper.SfcMapper; import com.foreverwin.mesnac.meapi.model.Sfc; import com.foreverwin.mesnac.production.mapper.SfcScrapMapper; +import com.foreverwin.mesnac.production.mapper.SplitSfcMapper; import com.foreverwin.mesnac.production.model.SfcScrap; import com.foreverwin.mesnac.production.service.PodTemplateService; import com.foreverwin.mesnac.production.service.SfcScrapService; @@ -77,6 +78,9 @@ public class SfcScrapServiceImpl extends ServiceImpl i @Autowired private UserService userService; + @Autowired + private SplitSfcMapper splitSfcMapper; + @Override public IPage selectPage(FrontPage frontPage, SfcScrap sfcScrap) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -92,6 +96,7 @@ public class SfcScrapServiceImpl extends ServiceImpl i } + @Override public List scrap(HashMap param) { String user = CommonMethods.getUser(); @@ -110,7 +115,6 @@ public class SfcScrapServiceImpl extends ServiceImpl i } } - String str = JSONUtil.toJsonStr(param.get("sfcScrap")); List _sfcScrapList = JSONArray.parseArray(str, SfcScrap.class); List sfcScrapsList = new ArrayList<>(); @@ -136,7 +140,6 @@ public class SfcScrapServiceImpl extends ServiceImpl i throw new BaseException("该sfc不存在,不能报废"); } - if(!StringUtil.isBlank(sfcScraps.getOperation())){ String[] split = sfcScraps.getOperation().split("/"); sfcScrap.setOperation(split[0]); @@ -144,16 +147,18 @@ public class SfcScrapServiceImpl extends ServiceImpl i } sfcScrap.setType(type.toString()); sfcScrap.setReason(reason); + //判断该SFC的数量是否>=0; + if(sfc.getQty() <= 0){ + throw new BaseException("该sfc的数量为0,不能报废"); + } sfcScrap.setQty(sfc.getQty()); sfcScrap.setCreatedUser(user); sfcScrap.setCreatedDateTime(now); sfcScrap.setModifiedUser(user); sfcScrap.setModifiedDateTime(now); - - //向生产派工那边发送数据 - // podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty())); + //podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty()),BigDecimal.valueOf(0L)); try{ //调用mes公共接口,报废 @@ -165,7 +170,6 @@ public class SfcScrapServiceImpl extends ServiceImpl i throw new BaseException("调用mes公共接口失败"+e.getMessage()); } - sfcScrapsList.add(sfcScrap); } //保存 diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java index b052b6ce..996d2d36 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java @@ -101,6 +101,9 @@ public class SplitSfcServiceImpl extends ServiceImpl i if (sfcDto==null){ throw new BaseException("未找到闭环关闭的质量异常"); } + if(StringUtil.isBlank(sfcDto.getNcQty())){ + throw new BaseException("质量异常提报不良品数量为空,不能拆分"); + } sfcData.setQty(Double.valueOf(sfcDto.getNcQty())); sfcData.setAbnormalNo(sfcDto.getAbnormalNo()); return sfcData; diff --git a/production/src/main/resources/mapper/SplitSfcMapper.xml b/production/src/main/resources/mapper/SplitSfcMapper.xml index f41b6117..d76e6bba 100644 --- a/production/src/main/resources/mapper/SplitSfcMapper.xml +++ b/production/src/main/resources/mapper/SplitSfcMapper.xml @@ -383,4 +383,5 @@ WHERE ZAB.SFC=#{sfc} AND zab.ABNORMAL_NO=#{abnormalNo} AND zab.SITE=#{site} AND ZAB.OPERATION=#{operation} AND zab.STATUS='G' AND zab."TYPE"='Z' AND (zsbd.ABNORMAL_METHOD='F' OR zsbd.ABNORMAL_METHOD='C') + From fb2e89d3fea8fd0855cbaf0df452eaa71526326b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=98=89=E4=BC=9F?= <1724121454@qq.com> Date: Fri, 27 Aug 2021 10:39:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=A7=E5=93=81=E6=8A=A5=E5=BA=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anomaly/mapper/AbnormalBillMapper.java | 3 +- .../service/impl/AbnormalBillServiceImpl.java | 35 +++++++++++++++---- .../resources/mapper/AbnormalBillMapper.xml | 4 +-- .../mesnac/common/dto/ScrapDto.java | 10 ++++++ .../mesnac/common/service/AnomalyService.java | 3 +- .../mesnac/production/model/SfcScrap.java | 15 +++++++- .../service/impl/SfcScrapServiceImpl.java | 3 +- .../main/resources/mapper/SfcScrapMapper.xml | 8 +++-- 8 files changed, 65 insertions(+), 16 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java index 8109ce9b..3e02f6b1 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java @@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; /** *

@@ -36,7 +37,7 @@ public interface AbnormalBillMapper extends BaseMapper { List findCountBySfc(@Param("site")String site, @Param("type")String type, @Param("sfc")String sfc, @Param("status")List status); - String findAbnormalMethodBySFC(@Param("site")String site,@Param("abnormalBo")String abnormalBo,@Param("sfc")String sfc); + Map findAbnormalMethodBySFC(@Param("site")String site, @Param("abnormalBo")String abnormalBo, @Param("sfc")String sfc); List findScrapDtoBySfc(@Param("site")String site, @Param("mainSfc")String mainSfc,@Param("splitSfc")List splitSfc); diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java index cd1e14fd..1aa56928 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java @@ -1149,7 +1149,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl jgProductionIsScrap(String abnormalNo, String site, String sfc) { //查询该sfc在质量异常异常方案是否是报废,如果是,则大于1 String abnormalBo = null; if(!StringUtils.isBlank(abnormalNo)){ @@ -1164,7 +1164,13 @@ public class AbnormalBillServiceImpl extends ServiceImpl map = this.jgProductionIsScrap(abnormalNo, site, sfc); + String mainSfc = null; + String abnormalBo = null; + if(map != null){ + mainSfc = map.get("SFC"); + abnormalBo = map.get("HANDLE"); + } List splitSfcs = null; SplitSfc splitSfc = new SplitSfc(); @@ -1181,7 +1187,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl0){ - mainSfc = this.jgProductionIsScrap(abnormalNo, site, splitSfcs.get(0).getSfc()); + Map map1 = this.jgProductionIsScrap(abnormalNo, site, splitSfcs.get(0).getSfc()); + mainSfc = map1.get("SFC"); + abnormalBo = map1.get("HANDLE"); }else{ if(!StringUtil.isBlank(sfc) && !StringUtil.isBlank(abnormalNo)){ throw new BaseException("该异常单下的产品条码不是报废"); @@ -1194,18 +1202,31 @@ public class AbnormalBillServiceImpl extends ServiceImpl scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, mainSfc,splitSfcs); + + + //如果用户提报上来的sfc不为空,并且不是主sfc,则把主sfc从scrapDtoBySfc去掉 if(!StringUtil.isBlank(sfc) && !sfc.equals(mainSfc)){ - for(ScrapDto scrap:scrapDtoBySfc){ - if(scrap.getSfc().equals(mainSfc)){ - scrapDtoBySfc.remove(scrap); - break; + for (int i = 0; i < scrapDtoBySfc.size(); i++) { + if(scrapDtoBySfc.get(i).getSfc().equals(mainSfc)){ + scrapDtoBySfc.remove(scrapDtoBySfc.get(i)); + continue; } } } if(scrapDtoBySfc.size() <= 0){ throw new BaseException("该产品条码的异常方案不是报废"); } + + //查找到责任人,放到表里 + AbnormalBillDispose abnormalBillDispose = new AbnormalBillDispose(); + abnormalBillDispose.setAbnormalBillBo(abnormalBo); + List abnormalBillDisposes = abnormalBillDisposeService.selectList(abnormalBillDispose); + if(abnormalBillDisposes.size() > 0){ + for (int i = 0; i < scrapDtoBySfc.size(); i++) { + scrapDtoBySfc.get(i).setDutyUser(abnormalBillDisposes.get(0).getPrincipalUser()); + } + } return scrapDtoBySfc; } diff --git a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml index f8a6c614..2780c57c 100644 --- a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml +++ b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml @@ -1081,8 +1081,8 @@ - + SELECT zabv.SFC SFC,zabv.HANDLE HANDLE FROM Z_ABNORMAL_BILL_VIEW zabv INNER JOIN (SELECT MAX(ZAB.HANDLE) HANDLE FROM Z_ABNORMAL_BILL_VIEW ZAB WHERE ZAB.SITE = #{site} diff --git a/common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java b/common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java index 0d3c933b..912e55ba 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java @@ -26,6 +26,8 @@ public class ScrapDto { private String type; + private String dutyUser; + public String getSfc() { return sfc; } @@ -105,4 +107,12 @@ public class ScrapDto { public void setType(String type) { this.type = type; } + + public String getDutyUser() { + return dutyUser; + } + + public void setDutyUser(String dutyUser) { + this.dutyUser = dutyUser; + } } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java index ed2f0609..c8a7a193 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java @@ -3,6 +3,7 @@ package com.foreverwin.mesnac.common.service; import com.foreverwin.mesnac.common.dto.ScrapDto; import java.util.List; +import java.util.Map; /** * @Description TODO @@ -31,7 +32,7 @@ public interface AnomalyService { * @param sfc * @return */ - String jgProductionIsScrap(String abnormalNo,String site,String sfc); + Map jgProductionIsScrap(String abnormalNo, String site, String sfc); /** * 检索 diff --git a/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java index be8fee96..d3cb4ee7 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java @@ -85,6 +85,11 @@ public class SfcScrap extends Model { @TableField("MODIFIED_DATE_TIME") private LocalDateTime modifiedDateTime; + @TableField("DUTY_USER") + private String dutyUser; + + + public String getHandle() { return handle; @@ -182,7 +187,15 @@ public class SfcScrap extends Model { this.modifiedDateTime = modifiedDateTime; } -public static final String HANDLE = "HANDLE"; + public String getDutyUser() { + return dutyUser; + } + + public void setDutyUser(String dutyUser) { + this.dutyUser = dutyUser; + } + + public static final String HANDLE = "HANDLE"; public static final String SITE = "SITE"; diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java index 6be7d012..2d545a37 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java @@ -152,13 +152,14 @@ public class SfcScrapServiceImpl extends ServiceImpl i throw new BaseException("该sfc的数量为0,不能报废"); } sfcScrap.setQty(sfc.getQty()); + sfcScrap.setDutyUser(sfcScraps.getDutyUser()); sfcScrap.setCreatedUser(user); sfcScrap.setCreatedDateTime(now); sfcScrap.setModifiedUser(user); sfcScrap.setModifiedDateTime(now); //向生产派工那边发送数据 - //podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty()),BigDecimal.valueOf(0L)); + podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty()),BigDecimal.valueOf(0L)); try{ //调用mes公共接口,报废 diff --git a/production/src/main/resources/mapper/SfcScrapMapper.xml b/production/src/main/resources/mapper/SfcScrapMapper.xml index e9c541bb..f1594657 100644 --- a/production/src/main/resources/mapper/SfcScrapMapper.xml +++ b/production/src/main/resources/mapper/SfcScrapMapper.xml @@ -431,20 +431,22 @@