From 869b5035eb01fbfa765e9cf08a5670b74c72006e Mon Sep 17 00:00:00 2001 From: Leon <3066758958@qq.com> Date: Mon, 19 Jul 2021 13:35:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AB=E6=96=99=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mesnac/common/dto/SfcDispatchDto.java | 6 +- .../controller/CallItemController.java | 6 +- .../controller/IssueItemController.java | 13 +- .../dispatch/dto/DateTimeQueryParam.java | 81 +++++++++++ .../mesnac/dispatch/dto/IssueItemDto.java | 2 - .../dispatch/mapper/CallItemMapper.java | 5 +- .../dispatch/mapper/IssueItemMapper.java | 5 +- .../mesnac/dispatch/model/CallItem.java | 44 +++--- .../mesnac/dispatch/model/IssueItem.java | 67 ++------- .../dispatch/service/CallItemService.java | 14 +- .../dispatch/service/IssueItemService.java | 25 +++- .../service/impl/CallItemServiceImpl.java | 15 +- .../service/impl/IssueItemServiceImpl.java | 122 ++++++++++++++--- .../main/resources/mapper/CallItemMapper.xml | 128 ++++++++++-------- .../main/resources/mapper/IssueItemMapper.xml | 49 +------ 15 files changed, 364 insertions(+), 218 deletions(-) create mode 100644 dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/DateTimeQueryParam.java diff --git a/common/src/main/java/com/foreverwin/mesnac/common/dto/SfcDispatchDto.java b/common/src/main/java/com/foreverwin/mesnac/common/dto/SfcDispatchDto.java index db29e45a..34746857 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/dto/SfcDispatchDto.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/dto/SfcDispatchDto.java @@ -97,7 +97,7 @@ public class SfcDispatchDto implements Serializable{ /** * 派工数量 */ - private Double dispatchQty; + private BigDecimal dispatchQty; /** * 工时 */ @@ -368,11 +368,11 @@ public class SfcDispatchDto implements Serializable{ this.turnOperation = turnOperation; } - public Double getDispatchQty() { + public BigDecimal getDispatchQty() { return dispatchQty; } - public void setDispatchQty(Double dispatchQty) { + public void setDispatchQty(BigDecimal dispatchQty) { this.dispatchQty = dispatchQty; } 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 80b57687..11f668f7 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 @@ -3,6 +3,7 @@ package com.foreverwin.mesnac.dispatch.controller; import cn.hutool.core.date.DateUtil; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.dispatch.dto.IssueItemDto; +import com.foreverwin.mesnac.dispatch.service.IssueItemService; import com.foreverwin.modular.core.exception.BusinessException; import com.foreverwin.modular.core.util.R; import com.foreverwin.modular.core.util.CommonMethods; @@ -28,7 +29,7 @@ import java.util.List; public class CallItemController { @Autowired - public CallItemService callItemService; + private CallItemService callItemService; /** @@ -173,6 +174,9 @@ public class CallItemController { } + + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @ResponseBody @GetMapping("/findIssueItemList") public R findIssueItemList(String workCenter, String resource, String shopOrder, String dispatchNo, String requiredFromDate, String requiredToDate, Boolean matchResource) { diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/IssueItemController.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/IssueItemController.java index 3f5c5a2d..d407900d 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/IssueItemController.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/IssueItemController.java @@ -1,6 +1,9 @@ package com.foreverwin.mesnac.dispatch.controller; import com.alibaba.fastjson.JSONObject; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.dispatch.dto.IssueItemDto; +import com.foreverwin.mesnac.dispatch.model.CallItem; import com.foreverwin.modular.core.exception.BusinessException; import com.foreverwin.modular.core.util.R; import com.foreverwin.modular.core.util.CommonMethods; @@ -10,6 +13,11 @@ import org.springframework.web.bind.annotation.*; import com.foreverwin.mesnac.dispatch.service.IssueItemService; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.Map; + /** * * @author Leon.L @@ -25,14 +33,15 @@ public class IssueItemController { @ResponseBody @GetMapping("/scanIssueInventory") public R scanIssueInventory(String item, String inventory){ + Map result; try { String site = CommonMethods.getSite(); - issueItemService.scanIssueInventory(site, item, inventory); + result = issueItemService.scanIssueInventory(site, item, inventory); } catch (Exception e) { return R.failed(e.getMessage()); } - return R.ok(); + return R.ok(result); } diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/DateTimeQueryParam.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/DateTimeQueryParam.java new file mode 100644 index 00000000..d27f2276 --- /dev/null +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/DateTimeQueryParam.java @@ -0,0 +1,81 @@ +package com.foreverwin.mesnac.dispatch.dto; + + +import java.io.Serializable; +import java.util.Date; + +public class DateTimeQueryParam implements Serializable { + + private String dateFromStr; + private String dateToStr; + private Date dateFrom; + private Date dateTo; + private String requireDateFromStr; + private String requireDateToStr; + private Date requireDateFrom; + private Date requireDateTo; + + public String getDateFromStr() { + return dateFromStr; + } + + public void setDateFromStr(String dateFromStr) { + this.dateFromStr = dateFromStr; + } + + public String getDateToStr() { + return dateToStr; + } + + public void setDateToStr(String dateToStr) { + this.dateToStr = dateToStr; + } + + public Date getDateFrom() { + return dateFrom; + } + + public void setDateFrom(Date dateFrom) { + this.dateFrom = dateFrom; + } + + public Date getDateTo() { + return dateTo; + } + + public void setDateTo(Date dateTo) { + this.dateTo = dateTo; + } + + public String getRequireDateFromStr() { + return requireDateFromStr; + } + + public void setRequireDateFromStr(String requireDateFromStr) { + this.requireDateFromStr = requireDateFromStr; + } + + public String getRequireDateToStr() { + return requireDateToStr; + } + + public void setRequireDateToStr(String requireDateToStr) { + this.requireDateToStr = requireDateToStr; + } + + public Date getRequireDateFrom() { + return requireDateFrom; + } + + public void setRequireDateFrom(Date requireDateFrom) { + this.requireDateFrom = requireDateFrom; + } + + public Date getRequireDateTo() { + return requireDateTo; + } + + public void setRequireDateTo(Date requireDateTo) { + this.requireDateTo = requireDateTo; + } +} diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/IssueItemDto.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/IssueItemDto.java index 0b83b500..122d9eb3 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/IssueItemDto.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/dto/IssueItemDto.java @@ -1,9 +1,7 @@ package com.foreverwin.mesnac.dispatch.dto; import java.io.Serializable; -import java.math.BigDecimal; import java.time.LocalDate; -import java.time.LocalDateTime; public class IssueItemDto implements Serializable { 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 4967402a..a0d79805 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 @@ -42,7 +42,10 @@ public interface CallItemMapper extends BaseMapper { void refreshRequiredTime(@Param("user") String user, @Param("dateTime") LocalDateTime dateTime, @Param("list") List list); - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + List findIssueMatchCallItemList(@Param("site")String site, @Param("workOrder")String workOrder, @Param("blankingSize")String blankingSize, @Param("resource")String resource, @Param("item")String item); + //车间发料查询 List finsIssueItemListToResource(IssueItemDto issueItemDto); List finsIssueItemListNoResource(IssueItemDto issueItemDto); diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/IssueItemMapper.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/IssueItemMapper.java index 96b29fa7..b1f31b96 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/IssueItemMapper.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/IssueItemMapper.java @@ -1,9 +1,13 @@ package com.foreverwin.mesnac.dispatch.mapper; +import com.foreverwin.mesnac.dispatch.dto.IssueItemDto; +import com.foreverwin.mesnac.dispatch.model.CallItem; import com.foreverwin.mesnac.dispatch.model.IssueItem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** *

* 车间发料 Mapper 接口 @@ -14,5 +18,4 @@ import org.springframework.stereotype.Repository; */ @Repository public interface IssueItemMapper extends BaseMapper { - } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/CallItem.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/CallItem.java index aaba62fc..73baaad9 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/CallItem.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/CallItem.java @@ -87,7 +87,7 @@ public class CallItem extends Model { * 需求数量 */ @TableField("REQUIRED_QTY") - private Double requiredQty; + private BigDecimal requiredQty; /** * 需求时间 */ @@ -97,7 +97,7 @@ public class CallItem extends Model { * 发料数量 */ @TableField("ISSUE_QTY") - private Double issueQty; + private BigDecimal issueQty; /** * 状态 */ @@ -126,13 +126,13 @@ public class CallItem extends Model { /** * 修改用户 */ - @TableField("UPDATE_USER") - private String updateUser; + @TableField("MODIFY_USER") + private String modifyUser; /** * 修改时间 */ - @TableField("UPDATED_DATE_TIME") - private LocalDateTime updatedDateTime; + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; @TableField(exist = false) @@ -274,11 +274,11 @@ public class CallItem extends Model { this.callType = callType; } - public Double getRequiredQty() { + public BigDecimal getRequiredQty() { return requiredQty; } - public void setRequiredQty(Double requiredQty) { + public void setRequiredQty(BigDecimal requiredQty) { this.requiredQty = requiredQty; } @@ -290,11 +290,11 @@ public class CallItem extends Model { this.requiredDateTime = requiredDateTime; } - public Double getIssueQty() { + public BigDecimal getIssueQty() { return issueQty; } - public void setIssueQty(Double issueQty) { + public void setIssueQty(BigDecimal issueQty) { this.issueQty = issueQty; } @@ -338,20 +338,20 @@ public class CallItem extends Model { this.createdDateTime = createdDateTime; } - public String getUpdateUser() { - return updateUser; + public String getModifyUser() { + return modifyUser; } - public void setUpdateUser(String updateUser) { - this.updateUser = updateUser; + public void setModifyUser(String modifyUser) { + this.modifyUser = modifyUser; } - public LocalDateTime getUpdatedDateTime() { - return updatedDateTime; + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; } - public void setUpdatedDateTime(LocalDateTime updatedDateTime) { - this.updatedDateTime = updatedDateTime; + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; } public String getItem() { @@ -592,9 +592,9 @@ public class CallItem extends Model { public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; - public static final String UPDATE_USER = "UPDATE_USER"; + public static final String MODIFY_USER = "MODIFY_USER"; - public static final String UPDATED_DATE_TIME = "UPDATED_DATE_TIME"; + public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; @Override @@ -624,8 +624,8 @@ public class CallItem extends Model { ", issueStatus = " + issueStatus + ", createUser = " + createUser + ", createdDateTime = " + createdDateTime + - ", updateUser = " + updateUser + - ", updatedDateTime = " + updatedDateTime + + ", modifyUser = " + modifyUser + + ", modifiedDateTime = " + modifiedDateTime + "}"; } } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/IssueItem.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/IssueItem.java index fa6e98da..801cb755 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/IssueItem.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/IssueItem.java @@ -21,7 +21,6 @@ import com.baomidou.mybatisplus.annotation.IdType; */ @TableName("Z_ISSUE_ITEM") - public class IssueItem extends Model { private static final long serialVersionUID = 1L; @@ -36,21 +35,6 @@ public class IssueItem extends Model { */ @TableField("SITE") private String site; - /** - * 叫料单号 - */ - @TableField("CALL_ITEM_NO") - private String callItemNo; - /** - * 生产批次 - */ - @TableField("SHOP_ORDER") - private String shopOrder; - /** - * 生产批次 - */ - @TableField("SFC") - private String sfc; /** * 组件物料 */ @@ -104,30 +88,6 @@ public class IssueItem extends Model { this.site = site; } - public String getCallItemNo() { - return callItemNo; - } - - public void setCallItemNo(String callItemNo) { - this.callItemNo = callItemNo; - } - - public String getShopOrder() { - return shopOrder; - } - - public void setShopOrder(String shopOrder) { - this.shopOrder = shopOrder; - } - - public String getSfc() { - return sfc; - } - - public void setSfc(String sfc) { - this.sfc = sfc; - } - public String getItem() { return item; } @@ -184,29 +144,23 @@ public class IssueItem extends Model { this.modifiedDateTime = modifiedDateTime; } -public static final String HANDLE = "HANDLE"; - -public static final String SITE = "SITE"; - -public static final String CALL_ITEM_NO = "CALL_ITEM_NO"; - -public static final String SHOP_ORDER = "SHOP_ORDER"; + public static final String HANDLE = "HANDLE"; -public static final String SFC = "SFC"; + public static final String SITE = "SITE"; -public static final String ITEM = "ITEM"; + public static final String ITEM = "ITEM"; -public static final String INVENTORY = "INVENTORY"; + public static final String INVENTORY = "INVENTORY"; -public static final String QTY = "QTY"; + public static final String QTY = "QTY"; -public static final String CREATE_USER = "CREATE_USER"; + public static final String CREATE_USER = "CREATE_USER"; -public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; -public static final String MODIFY_USER = "MODIFY_USER"; + public static final String MODIFY_USER = "MODIFY_USER"; -public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; @Override @@ -219,9 +173,6 @@ public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; return "IssueItem{" + "handle = " + handle + ", site = " + site + - ", callItemNo = " + callItemNo + - ", shopOrder = " + shopOrder + - ", sfc = " + sfc + ", item = " + item + ", inventory = " + inventory + ", qty = " + qty + 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 4619dae8..47f282ad 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 @@ -97,7 +97,19 @@ public interface CallItemService extends IService { void refreshRequiredTime(String site, String user, List callItemNoList); - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /** + * 查询发料匹配的叫料数据 + * + * @param site + * @param workOrder + * @param item + * @param blankingSize + * @param resource + * @return + */ + List findIssueMatchCallItemList(String site, String workOrder, String blankingSize, String resource, String item); + /** * 查询发料组件清单 * diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/IssueItemService.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/IssueItemService.java index a3fdd3f7..e606baaf 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/IssueItemService.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/IssueItemService.java @@ -1,11 +1,9 @@ package com.foreverwin.mesnac.dispatch.service; -; + import com.alibaba.fastjson.JSONObject; -import com.foreverwin.mesnac.dispatch.dto.IssueItemDto; import com.foreverwin.mesnac.dispatch.model.IssueItem; import com.baomidou.mybatisplus.extension.service.IService; -import java.util.List; import java.util.Map; @@ -19,7 +17,28 @@ import java.util.Map; */ public interface IssueItemService extends IService { + /** + * 校验扫描的物料条码 + * 1.原材料-扫描的必须是ERP发送的物料批次 + * 2.半成品-扫描的必须是库存批次 + * 3.当前工单物料-扫描的是当前SFC + * + * @param site + * @param item + * @param inventory + * @return + */ Map scanIssueInventory(String site, String item, String inventory); + /** + * 发料 + * 1.余料:库存拆分 + * 2.原材料:创建库存 + * 3.半成品|成品:记录发料 + * + * @param site + * @param user + * @param jsonObject + */ void issueItem(String site, String user, JSONObject jsonObject); } \ 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 3fa2237c..06adb248 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 @@ -84,8 +84,8 @@ public class CallItemServiceImpl extends ServiceImpl i callItem.setIssueStatus(Constants.CALL_ITEM_STATUS_NEW); callItem.setCreateUser(user); callItem.setCreatedDateTime(nowDate); - callItem.setUpdateUser(user); - callItem.setUpdatedDateTime(nowDate); + callItem.setModifyUser(user); + callItem.setModifiedDateTime(nowDate); list.add(callItem); } @@ -105,8 +105,8 @@ public class CallItemServiceImpl extends ServiceImpl i callItem.setIssueStatus(Constants.CALL_ITEM_STATUS_NEW); callItem.setCreateUser(user); callItem.setCreatedDateTime(nowDate); - callItem.setUpdateUser(user); - callItem.setUpdatedDateTime(nowDate); + callItem.setModifyUser(user); + callItem.setModifiedDateTime(nowDate); list.add(callItem); } @@ -195,7 +195,12 @@ public class CallItemServiceImpl extends ServiceImpl i } - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + @Override + public List findIssueMatchCallItemList(String site, String workOrder, String blankingSize, String resource, String item) { + return callItemMapper.findIssueMatchCallItemList(site, workOrder, blankingSize, resource, item); + } + @Override public List findIssueItemList(IssueItemDto issueItemDto) { if (issueItemDto.getMatchResource()) { diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/IssueItemServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/IssueItemServiceImpl.java index b0679864..285e4c5a 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/IssueItemServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/IssueItemServiceImpl.java @@ -2,19 +2,26 @@ package com.foreverwin.mesnac.dispatch.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.foreverwin.mesnac.common.constant.Constants; import com.foreverwin.mesnac.common.constant.DataImportConstant; import com.foreverwin.mesnac.common.enums.HandleEnum; import com.foreverwin.mesnac.common.util.ExceptionUtil; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.dispatch.dto.IssueItemDto; +import com.foreverwin.mesnac.dispatch.model.CallItem; import com.foreverwin.mesnac.dispatch.model.IssueItem; import com.foreverwin.mesnac.dispatch.mapper.IssueItemMapper; import com.foreverwin.mesnac.dispatch.model.ItemBatch; +import com.foreverwin.mesnac.dispatch.service.CallItemService; import com.foreverwin.mesnac.dispatch.service.IssueItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.foreverwin.mesnac.dispatch.service.ItemBatchService; import com.foreverwin.mesnac.meapi.model.Inventory; import com.foreverwin.mesnac.meapi.model.Item; +import com.foreverwin.mesnac.meapi.model.Sfc; import com.foreverwin.mesnac.meapi.service.InventoryService; import com.foreverwin.mesnac.meapi.service.ItemService; +import com.foreverwin.mesnac.meapi.service.SfcService; import com.foreverwin.modular.core.exception.BusinessException; import com.foreverwin.modular.core.meext.MEServices; import com.sap.me.common.MaterialType; @@ -41,9 +48,13 @@ import java.util.*; @Transactional(rollbackFor = Exception.class) public class IssueItemServiceImpl extends ServiceImpl implements IssueItemService { + @Autowired + private SfcService sfcService; @Autowired private ItemService itemService; @Autowired + private CallItemService callItemService; + @Autowired private ItemBatchService itemBatchService; @Autowired private InventoryService inventoryService; @@ -53,11 +64,12 @@ public class IssueItemServiceImpl extends ServiceImpl scanIssueInventory(String site, String item, String inventory) { Item itemModel = itemService.selectCurrent(site, item); if (itemModel == null) { - throw BusinessException.build("物料【" +item+"】当前版本不存在!"); + throw BusinessException.build("物料【" +item+"】的当前版本不存在!"); } String itemBo = itemModel.getHandle(); String materialType = itemModel.getMaterialType(); + //返回参数 Map map = new HashMap<>(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (MaterialType.RAW.value().equals(materialType)){ @@ -66,15 +78,27 @@ public class IssueItemServiceImpl extends ServiceImpl callItemList = new ArrayList<>(); List issueItemList = new ArrayList<>(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (!oddments) { - //非余料发料 原材料-创建库存,计算发料数量; 半成品-只计算发料数量 + //非余料发料 原材料-创建库存,计算发料数量; 半成品|成品-只计算发料数量 InventoryServiceInterface meInventoryService; try { meInventoryService = MEServices.create("com.sap.me.inventory", "InventoryService", site); @@ -119,7 +150,7 @@ public class IssueItemServiceImpl extends ServiceImpl list = callItemService.findIssueMatchCallItemList(site, workOrder, blankingSize, resource, item); + if (list == null || list.size() <= 0) { + throw BusinessException.build("根据发料数据未找到发料记录!"); + } + + BigDecimal remainQty = new BigDecimal(qty); + for (CallItem callItem: list) { + BigDecimal issueQty = callItem.getIssueQty(); + BigDecimal requiredQty = callItem.getRequiredQty(); + //还需发料数量 + requiredQty = requiredQty.subtract(issueQty); + if (remainQty.compareTo(requiredQty) == 1) { + issueQty = issueQty.add(requiredQty); + } else { + issueQty = issueQty.add(remainQty); + } + + //叫料数据修改 + if (issueQty.compareTo(requiredQty) >= 0) { + callItem.setStatus(Constants.CALL_ITEM_STATUS_ISSUED); + } + callItem.setIssueQty(issueQty); + callItem.setModifyUser(user); + callItem.setModifiedDateTime(dateTime); + callItemList.add(callItem); + + remainQty = remainQty.subtract(requiredQty); + if (remainQty.compareTo(BigDecimal.ZERO) <= 0) { + break; + } } //发料明细记录 IssueItem issueItem = new IssueItem(); issueItem.setHandle("IssueItemBO:" + site + "," + UUID.randomUUID().toString()); issueItem.setSite(site); - issueItem.setCallItemNo(""); - issueItem.setShopOrder(""); - issueItem.setSfc(""); issueItem.setItem(item); issueItem.setInventory(inventory); issueItem.setQty(new BigDecimal(qty)); @@ -177,11 +259,19 @@ public class IssueItemServiceImpl extends ServiceImpl 0) { this.saveBatch(issueItemList); } + + //修改叫料记录 + if (callItemList != null && callItemList.size() > 0) { + callItemService.updateBatchById(callItemList); + } } } \ No newline at end of file diff --git a/dispatch/src/main/resources/mapper/CallItemMapper.xml b/dispatch/src/main/resources/mapper/CallItemMapper.xml index 65c4e194..d02aa883 100644 --- a/dispatch/src/main/resources/mapper/CallItemMapper.xml +++ b/dispatch/src/main/resources/mapper/CallItemMapper.xml @@ -22,8 +22,8 @@ - - + + @@ -47,7 +47,7 @@ - HANDLE, SITE, SFC_DISPATCH_BO, CALL_ITEM_NO, SHOP_ORDER, SFC, OPERATION, STEP_ID, RESRCE, COMPONENT_BO, CALL_TYPE, REQUIRED_QTY, REQUIRED_DATE_TIME, STATUS, CALL_STATUS, ISSUE_STATUS, CREATE_USER, CREATED_DATE_TIME, UPDATE_USER, UPDATED_DATE_TIME + HANDLE, SITE, SFC_DISPATCH_BO, CALL_ITEM_NO, SHOP_ORDER, SFC, OPERATION, STEP_ID, RESRCE, COMPONENT_BO, CALL_TYPE, REQUIRED_QTY, REQUIRED_DATE_TIME, STATUS, CALL_STATUS, ISSUE_STATUS, CREATE_USER, CREATED_DATE_TIME, MODIFY_USER, MODIFIED_DATE_TIME @@ -100,8 +100,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} @@ -131,8 +131,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -170,8 +170,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -209,8 +209,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -248,8 +248,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -287,8 +287,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -326,8 +326,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -361,8 +361,8 @@ ISSUE_STATUS, CREATE_USER, CREATED_DATE_TIME, - UPDATE_USER, - UPDATED_DATE_TIME, + MODIFY_USER, + MODIFIED_DATE_TIME, VALUES #{handle}, @@ -384,8 +384,8 @@ #{issueStatus}, #{createUser}, #{createdDateTime}, - #{updateUser}, - #{updatedDateTime}, + #{modifyUser}, + #{modifiedDateTime}, @@ -414,14 +414,14 @@ #{issueStatus}, #{createUser}, #{createdDateTime}, - #{updateUser}, - #{updatedDateTime}, + #{modifyUser}, + #{modifiedDateTime}, - - UPDATE Z_CALL_ITEM + + MODIFY Z_CALL_ITEM SITE=#{et.site}, SFC_DISPATCH_BO=#{et.sfcDispatchBo}, CALL_ITEM_NO=#{et.callItemNo}, @@ -440,14 +440,14 @@ ISSUE_STATUS=#{et.issueStatus}, CREATE_USER=#{et.createUser}, CREATED_DATE_TIME=#{et.createdDateTime}, - UPDATE_USER=#{et.updateUser}, - UPDATED_DATE_TIME=#{et.updatedDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} - - UPDATE Z_CALL_ITEM + + MODIFY Z_CALL_ITEM SITE=#{et.site}, SFC_DISPATCH_BO=#{et.sfcDispatchBo}, CALL_ITEM_NO=#{et.callItemNo}, @@ -466,14 +466,14 @@ ISSUE_STATUS=#{et.issueStatus}, CREATE_USER=#{et.createUser}, CREATED_DATE_TIME=#{et.createdDateTime}, - UPDATE_USER=#{et.updateUser}, - UPDATED_DATE_TIME=#{et.updatedDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} - - UPDATE Z_CALL_ITEM + + MODIFY Z_CALL_ITEM SITE=#{et.site}, SFC_DISPATCH_BO=#{et.sfcDispatchBo}, CALL_ITEM_NO=#{et.callItemNo}, @@ -492,8 +492,8 @@ ISSUE_STATUS=#{et.issueStatus}, CREATE_USER=#{et.createUser}, CREATED_DATE_TIME=#{et.createdDateTime}, - UPDATE_USER=#{et.updateUser}, - UPDATED_DATE_TIME=#{et.updatedDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, @@ -517,8 +517,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -573,8 +573,8 @@ AND ISSUE_STATUS=#{ew.entity.issueStatus} AND CREATE_USER=#{ew.entity.createUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} - AND UPDATE_USER=#{ew.entity.updateUser} - AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} ${ew.sqlSegment} @@ -623,7 +623,7 @@ - - UPDATE Z_CALL_ITEM SET STATUS = #{status}, UPDATE_USER = #{user}, UPDATED_DATE_TIME = #{dateTime} + + MODIFY Z_CALL_ITEM SET STATUS = #{status}, MODIFY_USER = #{user}, MODIFIED_DATE_TIME = #{dateTime} WHERE STATUS != '804' AND SFC_DISPATCH_BO IN #{item.sfcDispatchBo} - - UPDATE Z_CALL_ITEM SET STATUS = #{status}, UPDATE_USER = #{user}, UPDATED_DATE_TIME = #{dateTime} + + MODIFY Z_CALL_ITEM SET STATUS = #{status}, MODIFY_USER = #{user}, MODIFIED_DATE_TIME = #{dateTime} WHERE STATUS != '804' AND CALL_ITEM_NO IN #{item} @@ -832,7 +832,7 @@ - UPDATE Z_CALL_ITEM SET UPDATE_USER = #{user}, UPDATED_DATE_TIME = #{dateTime}, REQUIRED_DATE_TIME = ( + MODIFY Z_CALL_ITEM SET MODIFY_USER = #{user}, MODIFIED_DATE_TIME = #{dateTime}, REQUIRED_DATE_TIME = ( SELECT ZSD.PLANNED_START_DATE FROM Z_SFC_DISPATCH ZSD WHERE Z_CALL_ITEM.SFC_DISPATCH_BO = ZSD.HANDLE @@ -843,17 +843,35 @@ + + diff --git a/dispatch/src/main/resources/mapper/IssueItemMapper.xml b/dispatch/src/main/resources/mapper/IssueItemMapper.xml index 05f91258..d66a4d50 100644 --- a/dispatch/src/main/resources/mapper/IssueItemMapper.xml +++ b/dispatch/src/main/resources/mapper/IssueItemMapper.xml @@ -6,9 +6,6 @@ - - - @@ -20,7 +17,7 @@ - HANDLE, SITE, CALL_ITEM_NO, SHOP_ORDER, SFC, ITEM, INVENTORY, QTY, CREATE_USER, CREATED_DATE_TIME, MODIFY_USER, MODIFIED_DATE_TIME + HANDLE, SITE, ITEM, INVENTORY, QTY, CREATE_USER, CREATED_DATE_TIME, MODIFY_USER, MODIFIED_DATE_TIME @@ -47,9 +44,6 @@ HANDLE=#{ew.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -69,9 +63,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -99,9 +90,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -129,9 +117,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -159,9 +144,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -189,9 +171,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -219,9 +198,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -245,9 +221,6 @@ HANDLE, SITE, - CALL_ITEM_NO, - SHOP_ORDER, - SFC, ITEM, INVENTORY, QTY, @@ -259,9 +232,6 @@ #{handle}, #{site}, - #{callItemNo}, - #{shopOrder}, - #{sfc}, #{item}, #{inventory}, #{qty}, @@ -280,9 +250,6 @@ #{handle}, #{site}, - #{callItemNo}, - #{shopOrder}, - #{sfc}, #{item}, #{inventory}, #{qty}, @@ -293,18 +260,10 @@ - - - - - UPDATE Z_ISSUE_ITEM HANDLE=#{et.handle}, SITE=#{et.site}, - CALL_ITEM_NO=#{et.callItemNo}, - SHOP_ORDER=#{et.shopOrder}, - SFC=#{et.sfc}, ITEM=#{et.item}, INVENTORY=#{et.inventory}, QTY=#{et.qty}, @@ -318,9 +277,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty} @@ -362,9 +318,6 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND CALL_ITEM_NO=#{ew.entity.callItemNo} - AND SHOP_ORDER=#{ew.entity.shopOrder} - AND SFC=#{ew.entity.sfc} AND ITEM=#{ew.entity.item} AND INVENTORY=#{ew.entity.inventory} AND QTY=#{ew.entity.qty}