diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/CallItemController.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/CallItemController.java index 453117ab..e1923ce6 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/CallItemController.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/CallItemController.java @@ -286,4 +286,34 @@ public class CallItemController { return R.ok(result); } + + @ResponseBody + @GetMapping("/findIssueItemListPda") + public R findIssueItemListPda(String workCenter, String resource, String requiredFromDate, String requiredToDate, Boolean matchResource) { + List result; + try { + String site = CommonMethods.getSite(); + + //参数拼装 + IssueItemDto issueItemDto = new IssueItemDto(); + issueItemDto.setSite(site); + issueItemDto.setResource(resource); + issueItemDto.setWorkCenter(workCenter); + issueItemDto.setMatchResource(matchResource); + if (StringUtil.notBlank(requiredFromDate)) { + issueItemDto.setRequiredFromDT(LocalDate.parse(requiredFromDate, DateTimeFormatter.ISO_DATE)); + } + if (StringUtil.notBlank(requiredToDate)) { + issueItemDto.setRequiredToDT(LocalDate.parse(requiredToDate, DateTimeFormatter.ISO_DATE)); + } + + result = callItemService.findIssueItemListPda(issueItemDto); + } catch (Exception e) { + return R.failed(e.getMessage()); + } + + return R.ok(result); + } + + } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/CallItemMapper.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/CallItemMapper.java index 0e3e1ef9..3a38fdd4 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/CallItemMapper.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/CallItemMapper.java @@ -62,4 +62,9 @@ public interface CallItemMapper extends BaseMapper { //车间发料查询 List finsIssueItemListToResource(IssueItemDto issueItemDto); List finsIssueItemListNoResource(IssueItemDto issueItemDto); + + //车间发料PDA界面查询 + List finsIssueItemListNoResourcePda(IssueItemDto issueItemDto); + List finsIssueItemListToResourcePda(IssueItemDto issueItemDto); + } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/CallItemService.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/CallItemService.java index 12aad5f9..3b833d2d 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/CallItemService.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/CallItemService.java @@ -154,4 +154,16 @@ public interface CallItemService extends IService { * @return */ List findIssueItemList(IssueItemDto issueItemDto); + + /** + * 查询发料组件清单 + * + * @param issueItemDto + * @return + */ + List findIssueItemListPda(IssueItemDto issueItemDto); + + + + } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/CallItemServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/CallItemServiceImpl.java index 51a5ae44..961023f5 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/CallItemServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/CallItemServiceImpl.java @@ -434,4 +434,80 @@ public class CallItemServiceImpl extends ServiceImpl i } return list; } + + + @Override + public List findIssueItemListPda(IssueItemDto issueItemDto) { + List list; + if (issueItemDto.getMatchResource()) { + list = callItemMapper.finsIssueItemListToResourcePda(issueItemDto); + } else { + list = callItemMapper.finsIssueItemListNoResourcePda(issueItemDto); + } + + if (list == null || list.size() < 1) { + return list; + } + + //计算合计(按下料尺寸) + //物料组为GB(钢板):合计=下料尺寸*号最后两位相乘*需求数量 + //其他物料: 合计:下料尺寸*号最后一位*需求数量 + Map compQtyMap = new HashMap<>(); + for (CallItem callItem: list) { + String component = callItem.getItem(); + String itemGroup = callItem.getItemGroup(); + BigDecimal reqQty = callItem.getDispatchQty(); + String blankingSize = callItem.getBlankingSize(); + + if (StringUtil.isBlank(blankingSize)) { + callItem.setSizeReqQty(reqQty); + compQtyMap.put(component, reqQty); + continue; + } + + if (StringUtil.notBlank(itemGroup) && "GB".equals(itemGroup)) { + if (!blankingSize.contains("×") || blankingSize.split("×").length < 2) { + callItem.setSizeReqQty(reqQty); + compQtyMap.put(component, reqQty); + continue; + } + + String []size = blankingSize.split("×"); + if (size != null && size.length >= 2) { + int sizeLength = size.length; + BigDecimal length = new BigDecimal(size[sizeLength-1]); + BigDecimal width = new BigDecimal(size[sizeLength-2]); + BigDecimal sizeReqQty = length.multiply(width).multiply(reqQty); + callItem.setSizeReqQty(sizeReqQty); + + //按物料汇总需求数量 + compQtyMap.put(component, (compQtyMap.get(component) != null ? compQtyMap.get(component).add(sizeReqQty) : sizeReqQty)); + } + } else { + String[] size = new String[1]; + if (blankingSize.contains("×")) { + size = blankingSize.split("×"); + } else { + size[0] = blankingSize; + } + + if (size != null && size.length >= 1) { + int sizeLength = size.length; + BigDecimal length = new BigDecimal(size[sizeLength-1]); + BigDecimal sizeReqQty = length.multiply(reqQty); + callItem.setSizeReqQty(sizeReqQty); + + //按物料汇总需求数量 + compQtyMap.put(component, (compQtyMap.get(component) != null ? compQtyMap.get(component).add(sizeReqQty) : sizeReqQty)); + } + } + } + + //计算总数量(按数量汇总) + for (CallItem callItem : list) { + callItem.setCompReqQty(compQtyMap.get(callItem.getItem())); + } + return list; + } + } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java index b51b33fd..a56be644 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java @@ -115,10 +115,11 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { BigDecimal qtyToRelease = qtyToBuild.subtract(qtyReleased); //查询工艺路线 - Router routerModel = routerService.getById(routerBo); + Router routerModel = routerService.getCurrentRouter(routerBo); if (routerModel == null) { throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]不存在"); } + routerBo = routerModel.getHandle(); //查询工艺路线详细 List routerList = shopOrderReleaseMapper.selectShopOrderRouter(routerBo); diff --git a/dispatch/src/main/resources/mapper/CallItemMapper.xml b/dispatch/src/main/resources/mapper/CallItemMapper.xml index 555f72e2..e0a80b68 100644 --- a/dispatch/src/main/resources/mapper/CallItemMapper.xml +++ b/dispatch/src/main/resources/mapper/CallItemMapper.xml @@ -978,6 +978,72 @@ ORDER BY VIP.WORK_ORDER, VIP.ITEM + + + + SELECT R.HANDLE, R.SITE, R.ROUTER, R.ROUTER_TYPE, R.DESCRIPTION, R.TEMPORARY_ROUTER, R.STATUS_BO, R.ENTRY_ROUTER_STEP_BO, R.COPIED_FROM_ROUTER_BO, R.REVISION, R.CURRENT_REVISION, R.HAS_BEEN_RELEASED FROM SFC SC @@ -646,6 +645,13 @@ WHERE SFC_BO = #{sfcBo} + + + SELECT COUNT(BC.HANDLE) FROM Z_SFC_DISPATCH zsd + JOIN SFC S ON S.SFC = zsd.SFC AND zsd.SITE=S.SITE + JOIN SFC_BOM SB ON SB.SFC_BO = S.HANDLE + JOIN BOM_COMPONENT BC ON BC.BOM_BO = SB.BOM_BO + LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = BC.COMPONENT_GBO AND CF."ATTRIBUTE" = 'ACCESSORY_TYPE' AND (CF.VALUE = '0' OR CF.VALUE = NULL) + WHERE zsd.SITE=#{site} AND zsd.DISPATCH_STATUS!='COMPLETE' AND zsd.DISPATCH_STATUS!='CANCEL' AND zsd.RESRCE=#{resrce} AND BC.COMPONENT_GBO=#{itemBo} +