叫料发布

Leon 4 years ago
parent bb17f7e1ab
commit 869b5035eb

@ -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;
}

@ -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) {

@ -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<String, Object> 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);
}

@ -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;
}
}

@ -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 {

@ -42,7 +42,10 @@ public interface CallItemMapper extends BaseMapper<CallItem> {
void refreshRequiredTime(@Param("user") String user, @Param("dateTime") LocalDateTime dateTime, @Param("list") List<String> list);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List<CallItem> findIssueMatchCallItemList(@Param("site")String site, @Param("workOrder")String workOrder, @Param("blankingSize")String blankingSize, @Param("resource")String resource, @Param("item")String item);
//车间发料查询
List<CallItem> finsIssueItemListToResource(IssueItemDto issueItemDto);
List<CallItem> finsIssueItemListNoResource(IssueItemDto issueItemDto);

@ -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;
/**
* <p>
* Mapper
@ -14,5 +18,4 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public interface IssueItemMapper extends BaseMapper<IssueItem> {
}

@ -87,7 +87,7 @@ public class CallItem extends Model<CallItem> {
*
*/
@TableField("REQUIRED_QTY")
private Double requiredQty;
private BigDecimal requiredQty;
/**
*
*/
@ -97,7 +97,7 @@ public class CallItem extends Model<CallItem> {
*
*/
@TableField("ISSUE_QTY")
private Double issueQty;
private BigDecimal issueQty;
/**
*
*/
@ -126,13 +126,13 @@ public class CallItem extends Model<CallItem> {
/**
*
*/
@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<CallItem> {
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<CallItem> {
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<CallItem> {
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<CallItem> {
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<CallItem> {
", issueStatus = " + issueStatus +
", createUser = " + createUser +
", createdDateTime = " + createdDateTime +
", updateUser = " + updateUser +
", updatedDateTime = " + updatedDateTime +
", modifyUser = " + modifyUser +
", modifiedDateTime = " + modifiedDateTime +
"}";
}
}

@ -21,7 +21,6 @@ import com.baomidou.mybatisplus.annotation.IdType;
*/
@TableName("Z_ISSUE_ITEM")
public class IssueItem extends Model<IssueItem> {
private static final long serialVersionUID = 1L;
@ -36,21 +35,6 @@ public class IssueItem extends Model<IssueItem> {
*/
@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<IssueItem> {
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<IssueItem> {
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 +

@ -97,7 +97,19 @@ public interface CallItemService extends IService<CallItem> {
void refreshRequiredTime(String site, String user, List<String> callItemNoList);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/**
*
*
* @param site
* @param workOrder
* @param item
* @param blankingSize
* @param resource
* @return
*/
List<CallItem> findIssueMatchCallItemList(String site, String workOrder, String blankingSize, String resource, String item);
/**
*
*

@ -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<IssueItem> {
/**
*
* 1.-ERP
* 2.-
* 3.-SFC
*
* @param site
* @param item
* @param inventory
* @return
*/
Map<String, Object> scanIssueInventory(String site, String item, String inventory);
/**
*
* 1.
* 2.
* 3.|
*
* @param site
* @param user
* @param jsonObject
*/
void issueItem(String site, String user, JSONObject jsonObject);
}

@ -84,8 +84,8 @@ public class CallItemServiceImpl extends ServiceImpl<CallItemMapper, CallItem> 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<CallItemMapper, CallItem> 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<CallItemMapper, CallItem> i
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@Override
public List<CallItem> findIssueMatchCallItemList(String site, String workOrder, String blankingSize, String resource, String item) {
return callItemMapper.findIssueMatchCallItemList(site, workOrder, blankingSize, resource, item);
}
@Override
public List<CallItem> findIssueItemList(IssueItemDto issueItemDto) {
if (issueItemDto.getMatchResource()) {

@ -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<IssueItemMapper, IssueItem> 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<IssueItemMapper, IssueItem
public Map<String, Object> 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<String, Object> map = new HashMap<>();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (MaterialType.RAW.value().equals(materialType)){
@ -66,15 +78,27 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
if (itemBatchList == null || itemBatchList.size() <= 0) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不存在!");
}
} else {
//半成品
//半成品|成品物料
String inventoryBo = HandleEnum.INVENTORY.getHandle(site, inventory);
Inventory inventoryModel = inventoryService.getById(inventoryBo);
if (inventoryModel == null) {
String sfcBo = HandleEnum.SFC.getHandle(site, inventory);
Sfc sfcModel = sfcService.getById(sfcBo);
if (sfcModel != null) {
if (!sfcModel.getItemBo().equals(itemBo)) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不是物料【"+ item +"】的批次!");
}
map.put("qty", sfcModel.getQty());
return map;
}
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不存在!");
}
String invItemBo = inventoryModel.getItemBo();
if (invItemBo.equals(itemBo)) {
if (!inventoryModel.getItemBo().equals(itemBo)) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不是物料【"+ item +"】的库存!");
}
map.put("qty", inventoryModel.getQtyOnHand());
@ -92,6 +116,9 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
}
String item = jsonObject.getString("item");
if (StringUtil.isBlank(item)) {
throw BusinessException.build("物料编号不能为空!");
}
Item itemModel = itemService.selectCurrent(site, item);
if (itemModel == null) {
throw BusinessException.build("物料{0}没有维护当前版本!", item);
@ -99,13 +126,17 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
String itemBo = itemModel.getHandle();
String materialType = itemModel.getMaterialType();
Boolean oddments = jsonObject.getBoolean("oddments");
String resource = jsonObject.getString("resource");
String workOrder = jsonObject.getString("workOrder");
String blankingSize = jsonObject.getString("blankingSize");
LocalDateTime dateTime = LocalDateTime.now();
List<CallItem> callItemList = new ArrayList<>();
List<IssueItem> 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<IssueItemMapper, IssueItem
String inventory = _jsonObject.getString("inventory");
String inventoryBo = HandleEnum.INVENTORY.getHandle(site, inventory);
String qty = _jsonObject.getString("qty");
BigDecimal qtyOnHand = new BigDecimal(qty);
BigDecimal issueInvQty = new BigDecimal(qty);
if (MaterialType.RAW.value().equals(materialType)) {
//原材料
@ -139,17 +170,17 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
InventoryValidateAndAddRequest request = new InventoryValidateAndAddRequest();
request.setItemRef(itemBo);
request.setInventoryId(inventory);
request.setQuantityOnHand(qtyOnHand);
request.setQuantityOnHand(issueInvQty);
meInventoryService.validateAndAdd(request);
} else {
qtyOnHand = qtyOnHand.add(inventoryModel.getQtyOnHand());
issueInvQty = issueInvQty.add(inventoryModel.getQtyOnHand());
//库存修改
InventoryValidateAndUpdateWithReceiveQuantityOverrideRequest request = new InventoryValidateAndUpdateWithReceiveQuantityOverrideRequest();
request.setItemRef(itemBo);
request.setInventoryId(inventory);
request.setReceiveQty(qtyOnHand);
request.setQuantityOnHand(qtyOnHand);
request.setReceiveQty(issueInvQty);
request.setQuantityOnHand(issueInvQty);
request.setModifiedDateTime(inventoryModel.getModifiedDateTime());
meInventoryService.validateAndUpdateWithReceiveQtyOverride(request);
}
@ -157,17 +188,68 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
ExceptionUtil.throwException(e);
}
} else {
//半成品
inventoryService.getById(inventoryBo);
//半成品|成品
Inventory inventoryModel = inventoryService.getById(inventoryBo);
if (inventoryModel == null) {
String sfcBo = HandleEnum.SFC.getHandle(site, inventory);
Sfc sfcModel = sfcService.getById(sfcBo);
if (sfcModel == null) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不存在!");
}
if (sfcModel != null && !sfcModel.getItemBo().equals(itemBo)) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不是物料【"+ item +"】的批次!");
}
if (new BigDecimal(sfcModel.getQty()).compareTo(issueInvQty) <= 0) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】的数量小于发料数量【" +issueInvQty+ "】!");
}
}
if (!inventoryModel.getItemBo().equals(itemBo)) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】不是物料【"+ item +"】的库存!");
}
if (inventoryModel.getQtyOnHand().compareTo(issueInvQty) <= 0) {
throw BusinessException.build("扫描的物料条码【 "+ inventory +" 】的库存数量小于发料数量【" +issueInvQty+ "】!");
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//查询匹配的叫料记录
List<CallItem> 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<IssueItemMapper, IssueItem
issueItem.setModifiedDateTime(dateTime);
issueItemList.add(issueItem);
}//end for
}// end if
} else {
//余料发料
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//记录发料历史
if (issueItemList != null && issueItemList.size() > 0) {
this.saveBatch(issueItemList);
}
//修改叫料记录
if (callItemList != null && callItemList.size() > 0) {
callItemService.updateBatchById(callItemList);
}
}
}

@ -22,8 +22,8 @@
<result column="ISSUE_STATUS" property="issueStatus" />
<result column="CREATE_USER" property="createUser" />
<result column="CREATED_DATE_TIME" property="createdDateTime" />
<result column="UPDATE_USER" property="updateUser" />
<result column="UPDATED_DATE_TIME" property="updatedDateTime" />
<result column="MODIFY_USER" property="modifyUser" />
<result column="MODIFIED_DATE_TIME" property="modifiedDateTime" />
</resultMap>
<resultMap id="FullResultMap" type="com.foreverwin.mesnac.dispatch.model.CallItem" extends="BaseResultMap">
@ -47,7 +47,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
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
</sql>
<!-- BaseMapper标准查询/修改/删除 -->
@ -100,8 +100,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</where>
</select>
@ -131,8 +131,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -170,8 +170,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -209,8 +209,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -248,8 +248,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -287,8 +287,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -326,8 +326,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -361,8 +361,8 @@
<if test="issueStatus!=null">ISSUE_STATUS,</if>
<if test="createUser!=null">CREATE_USER,</if>
<if test="createdDateTime!=null">CREATED_DATE_TIME,</if>
<if test="updateUser!=null">UPDATE_USER,</if>
<if test="updatedDateTime!=null">UPDATED_DATE_TIME,</if>
<if test="modifyUser!=null">MODIFY_USER,</if>
<if test="modifiedDateTime!=null">MODIFIED_DATE_TIME,</if>
</trim> VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
#{handle},
@ -384,8 +384,8 @@
<if test="issueStatus!=null">#{issueStatus},</if>
<if test="createUser!=null">#{createUser},</if>
<if test="createdDateTime!=null">#{createdDateTime},</if>
<if test="updateUser!=null">#{updateUser},</if>
<if test="updatedDateTime!=null">#{updatedDateTime},</if>
<if test="modifyUser!=null">#{modifyUser},</if>
<if test="modifiedDateTime!=null">#{modifiedDateTime},</if>
</trim>
</insert>
@ -414,14 +414,14 @@
#{issueStatus},
#{createUser},
#{createdDateTime},
#{updateUser},
#{updatedDateTime},
#{modifyUser},
#{modifiedDateTime},
</trim>
</insert>
<update id="updateById">
UPDATE Z_CALL_ITEM <trim prefix="SET" suffixOverrides=",">
<update id="modifyById">
MODIFY Z_CALL_ITEM <trim prefix="SET" suffixOverrides=",">
<if test="et.site!=null">SITE=#{et.site},</if>
<if test="et.sfcDispatchBo!=null">SFC_DISPATCH_BO=#{et.sfcDispatchBo},</if>
<if test="et.callItemNo!=null">CALL_ITEM_NO=#{et.callItemNo},</if>
@ -440,14 +440,14 @@
<if test="et.issueStatus!=null">ISSUE_STATUS=#{et.issueStatus},</if>
<if test="et.createUser!=null">CREATE_USER=#{et.createUser},</if>
<if test="et.createdDateTime!=null">CREATED_DATE_TIME=#{et.createdDateTime},</if>
<if test="et.updateUser!=null">UPDATE_USER=#{et.updateUser},</if>
<if test="et.updatedDateTime!=null">UPDATED_DATE_TIME=#{et.updatedDateTime},</if>
<if test="et.modifyUser!=null">MODIFY_USER=#{et.modifyUser},</if>
<if test="et.modifiedDateTime!=null">MODIFIED_DATE_TIME=#{et.modifiedDateTime},</if>
</trim> WHERE HANDLE=#{et.handle} <if test="et instanceof java.util.Map"><if test="et.MP_OPTLOCK_VERSION_ORIGINAL!=null">and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL}</if></if>
</update>
<update id="updateAllColumnById">
UPDATE Z_CALL_ITEM <trim prefix="SET" suffixOverrides=",">
<update id="modifyAllColumnById">
MODIFY Z_CALL_ITEM <trim prefix="SET" suffixOverrides=",">
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},
</trim> WHERE HANDLE=#{et.handle} <if test="et instanceof java.util.Map"><if test="et.MP_OPTLOCK_VERSION_ORIGINAL!=null">and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL}</if></if>
</update>
<update id="update">
UPDATE Z_CALL_ITEM <trim prefix="SET" suffixOverrides=",">
<update id="modify">
MODIFY Z_CALL_ITEM <trim prefix="SET" suffixOverrides=",">
<if test="et.site!=null">SITE=#{et.site},</if>
<if test="et.sfcDispatchBo!=null">SFC_DISPATCH_BO=#{et.sfcDispatchBo},</if>
<if test="et.callItemNo!=null">CALL_ITEM_NO=#{et.callItemNo},</if>
@ -492,8 +492,8 @@
<if test="et.issueStatus!=null">ISSUE_STATUS=#{et.issueStatus},</if>
<if test="et.createUser!=null">CREATE_USER=#{et.createUser},</if>
<if test="et.createdDateTime!=null">CREATED_DATE_TIME=#{et.createdDateTime},</if>
<if test="et.updateUser!=null">UPDATE_USER=#{et.updateUser},</if>
<if test="et.updatedDateTime!=null">UPDATED_DATE_TIME=#{et.updatedDateTime},</if>
<if test="et.modifyUser!=null">MODIFY_USER=#{et.modifyUser},</if>
<if test="et.modifiedDateTime!=null">MODIFIED_DATE_TIME=#{et.modifiedDateTime},</if>
</trim>
<where>
<if test="ew!=null">
@ -517,8 +517,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -573,8 +573,8 @@
<if test="ew.entity.issueStatus!=null"> AND ISSUE_STATUS=#{ew.entity.issueStatus}</if>
<if test="ew.entity.createUser!=null"> AND CREATE_USER=#{ew.entity.createUser}</if>
<if test="ew.entity.createdDateTime!=null"> AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.updateUser!=null"> AND UPDATE_USER=#{ew.entity.updateUser}</if>
<if test="ew.entity.updatedDateTime!=null"> AND UPDATED_DATE_TIME=#{ew.entity.updatedDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
</if>
<if test="ew!=null and ew.sqlSegment!=null and ew.nonEmptyOfWhere">
${ew.sqlSegment}
@ -623,7 +623,7 @@
<select id="selectCallItemAndType" resultMap="FullResultMap">
SELECT ZCI.HANDLE, ZCI.SITE, ZCI.CALL_ITEM_NO, ZCI.SHOP_ORDER, ZCI.SFC, ZCI.SFC_DISPATCH_BO, ZCI.OPERATION, ZCI.STEP_ID, ZCI.RESRCE, ZCI.COMPONENT_BO, CP.MATERIAL_TYPE, ZCI.CALL_TYPE, ZCI.REQUIRED_QTY, ZCI.REQUIRED_DATE_TIME,
ZCI.ISSUE_QTY, ZCI.STATUS, ZCI.CALL_STATUS, ZCI.ISSUE_STATUS, ZCI.CREATE_USER, ZCI.CREATED_DATE_TIME, ZCI.UPDATE_USER, ZCI.UPDATED_DATE_TIME
ZCI.ISSUE_QTY, ZCI.STATUS, ZCI.CALL_STATUS, ZCI.ISSUE_STATUS, ZCI.CREATE_USER, ZCI.CREATED_DATE_TIME, ZCI.MODIFY_USER, ZCI.MODIFIED_DATE_TIME
FROM Z_CALL_ITEM ZCI
INNER JOIN ITEM CP ON CP.HANDLE = ZCI.COMPONENT_BO
WHERE ZCI.SFC_DISPATCH_BO = #{sfcDispatchBo}
@ -815,16 +815,16 @@
ORDER BY ZSD.SFC, ZSD.STEP_ID, ZCI.CALL_TYPE
</select>
<update id="updateCallItemStatusByDispatchBo">
UPDATE Z_CALL_ITEM SET STATUS = #{status}, UPDATE_USER = #{user}, UPDATED_DATE_TIME = #{dateTime}
<update id="modifyCallItemStatusByDispatchBo">
MODIFY Z_CALL_ITEM SET STATUS = #{status}, MODIFY_USER = #{user}, MODIFIED_DATE_TIME = #{dateTime}
WHERE STATUS != '804' AND SFC_DISPATCH_BO IN
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{item.sfcDispatchBo}
</foreach>
</update>
<update id="updateCallItemStatusByCallItemNo">
UPDATE Z_CALL_ITEM SET STATUS = #{status}, UPDATE_USER = #{user}, UPDATED_DATE_TIME = #{dateTime}
<update id="modifyCallItemStatusByCallItemNo">
MODIFY Z_CALL_ITEM SET STATUS = #{status}, MODIFY_USER = #{user}, MODIFIED_DATE_TIME = #{dateTime}
WHERE STATUS != '804' AND CALL_ITEM_NO IN
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{item}
@ -832,7 +832,7 @@
</update>
<update id="refreshRequiredTime">
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 @@
</foreach>
</update>
<select id="findIssueMatchCallItemList" resultMap="FullResultMap">
SELECT B.HANDLE, B.SITE, B.CALL_ITEM_NO, B.SHOP_ORDER, B.SFC, B.RESRCE, B.REQUIRED_QTY, NVL(B.ISSUE_QTY,0) ISSUE_QTY, B.REQUIRED_DATE_TIME, B.STATUS
FROM Z_CALL_ITEM B
INNER JOIN Z_SFC_DISPATCH P ON B.SFC_DISPATCH_BO = P.HANDLE
INNER JOIN ITEM M ON B.COMPONENT_BO = M.HANDLE
INNER JOIN SHOP_ORDER Z ON Z.SITE = B.SITE AND Z.SHOP_ORDER = B.SHOP_ORDER
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = Z.HANDLE AND CF."ATTRIBUTE" = 'WORK_ORDER'
WHERE B.SITE = #{site} AND M.ITEM = #{item} AND P.BLANKING_SIZE = #{blankingSize}
AND (B.ISSUE_QTY IS NULL OR B.ISSUE_QTY &lt; B.REQUIRED_QTY)
<if test="workOrder != null and workOrder != ''">
AND CF.VALUE = #{workOrder}
</if>
<if test="resource != null and resource != ''">
AND B.RESRCE = #{resource}
</if>
ORDER BY B.REQUIRED_DATE_TIME
</select>
<select id="finsIssueItemListToResource" resultMap="FullResultMap">
SELECT VIP.SITE, VIP.WORK_ORDER, VIP.CALL_TYPE, VIP.ITEM_BO, VIP.ITEM, VIP.ITEM_DESCRIPTION, VIP.REQUIRED_QTY, VIP.BLANKING_SIZE, VIP.RESRCE, SIP.SOURCE_RESOURCE
SELECT VIP.SITE, VIP.WORK_ORDER, VIP.ITEM_BO, VIP.ITEM, VIP.ITEM_DESCRIPTION, VIP.REQUIRED_QTY, VIP.BLANKING_SIZE, VIP.RESRCE, SIP.SOURCE_RESOURCE
FROM (
SELECT L.SITE, CF.VALUE WORK_ORDER, L.CALL_TYPE, CP.HANDLE ITEM_BO, CP.ITEM, CT.DESCRIPTION ITEM_DESCRIPTION, SUM(L.REQUIRED_QTY) REQUIRED_QTY, W.BLANKING_SIZE, W.RESRCE
SELECT L.SITE, CF.VALUE WORK_ORDER, CP.HANDLE ITEM_BO, CP.ITEM, CT.DESCRIPTION ITEM_DESCRIPTION, SUM(L.REQUIRED_QTY)-SUM(NVL(L.ISSUE_QTY,0)) REQUIRED_QTY, W.BLANKING_SIZE, W.RESRCE
FROM Z_CALL_ITEM L
INNER JOIN Z_SFC_DISPATCH W ON L.SFC_DISPATCH_BO = W.HANDLE
INNER JOIN ITEM CP ON CP.HANDLE = L.COMPONENT_BO
LEFT JOIN ITEM_T CT ON CT.ITEM_BO = CP.HANDLE AND CT.LOCALE = 'zh'
INNER JOIN SHOP_ORDER SO ON SO.SITE = L.SITE AND SO.SHOP_ORDER = L.SHOP_ORDER
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF."ATTRIBUTE" = 'WORK_ORDER'
WHERE L.SITE = #{site} AND L.CALL_TYPE = 'MATERIAL'
WHERE L.SITE = #{site} AND L.STATUS = '802'
<if test="workCenter != null and workCenter != ''">
AND W.WORK_CENTER = #{workCenter}
</if>
@ -872,7 +890,7 @@
<if test="requiredToDT != null">
AND L.REQUIRED_DATE_TIME &lt;= #{requiredToDT}
</if>
GROUP BY L.SITE, CF.VALUE, L.CALL_TYPE, CP.HANDLE, CP.ITEM, CT.DESCRIPTION, W.BLANKING_SIZE, W.RESRCE
GROUP BY L.SITE, CF.VALUE, CP.HANDLE, CP.ITEM, CT.DESCRIPTION, W.BLANKING_SIZE, W.RESRCE
) VIP
LEFT JOIN (
SELECT L.SITE, L.ITEM_BO, ZD.RESRCE SOURCE_RESOURCE
@ -885,20 +903,20 @@
INNER JOIN Z_SFC_DISPATCH ZD ON ZD.SITE = ZS.SITE AND ZD.SFC = ZS.SFC AND ZD.DISPATCH_SEQ = ZS.DISPATCH_SEQ
WHERE W.QTY_ON_HAND > 0
) SIP
ON VIP.SITE = SIP.SITE AND VIP.ITEM_BO = SIP.ITEM_BO
ON VIP.SITE = SIP.SITE AND VIP.ITEM_BO = SIP.ITEM_BO AND VIP.REQUIRED_QTY > 0
</select>
<select id="finsIssueItemListNoResource" resultMap="FullResultMap">
SELECT VIP.SITE, VIP.WORK_ORDER, VIP.CALL_TYPE, VIP.ITEM_BO, VIP.ITEM, VIP.ITEM_DESCRIPTION, VIP.REQUIRED_QTY, VIP.BLANKING_SIZE, SIP.SOURCE_RESOURCE
SELECT VIP.SITE, VIP.WORK_ORDER, VIP.ITEM_BO, VIP.ITEM, VIP.ITEM_DESCRIPTION, VIP.REQUIRED_QTY, VIP.BLANKING_SIZE, SIP.SOURCE_RESOURCE
FROM (
SELECT L.SITE, CF.VALUE WORK_ORDER, L.CALL_TYPE, CP.HANDLE ITEM_BO, CP.ITEM, CT.DESCRIPTION ITEM_DESCRIPTION, SUM(L.REQUIRED_QTY) REQUIRED_QTY, W.BLANKING_SIZE
SELECT L.SITE, CF.VALUE WORK_ORDER, CP.HANDLE ITEM_BO, CP.ITEM, CT.DESCRIPTION ITEM_DESCRIPTION, SUM(L.REQUIRED_QTY)-SUM(NVL(L.ISSUE_QTY,0)) REQUIRED_QTY, W.BLANKING_SIZE
FROM Z_CALL_ITEM L
INNER JOIN Z_SFC_DISPATCH W ON L.SFC_DISPATCH_BO = W.HANDLE
INNER JOIN ITEM CP ON CP.HANDLE = L.COMPONENT_BO
LEFT JOIN ITEM_T CT ON CT.ITEM_BO = CP.HANDLE AND CT.LOCALE = 'zh'
INNER JOIN SHOP_ORDER SO ON SO.SITE = L.SITE AND SO.SHOP_ORDER = L.SHOP_ORDER
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF."ATTRIBUTE" = 'WORK_ORDER'
WHERE L.SITE = #{site} AND L.CALL_TYPE = 'MATERIAL'
WHERE L.SITE = #{site} AND L.STATUS = '802'
<if test="workCenter != null and workCenter != ''">
AND W.WORK_CENTER = #{workCenter}
</if>
@ -917,7 +935,7 @@
<if test="requiredToDT != null">
AND L.REQUIRED_DATE_TIME &lt;= #{requiredToDT}
</if>
GROUP BY L.SITE, CF.VALUE, L.CALL_TYPE, CP.HANDLE, CP.ITEM, CT.DESCRIPTION, W.BLANKING_SIZE
GROUP BY L.SITE, CF.VALUE, CP.HANDLE, CP.ITEM, CT.DESCRIPTION, W.BLANKING_SIZE
) VIP
LEFT JOIN (
SELECT L.SITE, L.ITEM_BO, ZD.RESRCE SOURCE_RESOURCE
@ -930,6 +948,6 @@
INNER JOIN Z_SFC_DISPATCH ZD ON ZD.SITE = ZS.SITE AND ZD.SFC = ZS.SFC AND ZD.DISPATCH_SEQ = ZS.DISPATCH_SEQ
WHERE W.QTY_ON_HAND > 0
) SIP
ON VIP.SITE = SIP.SITE AND VIP.ITEM_BO = SIP.ITEM_BO
ON VIP.SITE = SIP.SITE AND VIP.ITEM_BO = SIP.ITEM_BO AND VIP.REQUIRED_QTY > 0
</select>
</mapper>

@ -6,9 +6,6 @@
<resultMap id="BaseResultMap" type="com.foreverwin.mesnac.dispatch.model.IssueItem">
<result column="HANDLE" property="handle" />
<result column="SITE" property="site" />
<result column="CALL_ITEM_NO" property="callItemNo" />
<result column="SHOP_ORDER" property="shopOrder" />
<result column="SFC" property="sfc" />
<result column="ITEM" property="item" />
<result column="INVENTORY" property="inventory" />
<result column="QTY" property="qty" />
@ -20,7 +17,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
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
</sql>
<!-- BaseMapper标准查询/修改/删除 -->
@ -47,9 +44,6 @@
HANDLE=#{ew.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -69,9 +63,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -99,9 +90,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -129,9 +117,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -159,9 +144,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -189,9 +171,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -219,9 +198,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -245,9 +221,6 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
HANDLE,
<if test="site!=null">SITE,</if>
<if test="callItemNo!=null">CALL_ITEM_NO,</if>
<if test="shopOrder!=null">SHOP_ORDER,</if>
<if test="sfc!=null">SFC,</if>
<if test="item!=null">ITEM,</if>
<if test="inventory!=null">INVENTORY,</if>
<if test="qty!=null">QTY,</if>
@ -259,9 +232,6 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
#{handle},
<if test="site!=null">#{site},</if>
<if test="callItemNo!=null">#{callItemNo},</if>
<if test="shopOrder!=null">#{shopOrder},</if>
<if test="sfc!=null">#{sfc},</if>
<if test="item!=null">#{item},</if>
<if test="inventory!=null">#{inventory},</if>
<if test="qty!=null">#{qty},</if>
@ -280,9 +250,6 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
#{handle},
#{site},
#{callItemNo},
#{shopOrder},
#{sfc},
#{item},
#{inventory},
#{qty},
@ -293,18 +260,10 @@
</trim>
</insert>
<update id="update">
UPDATE Z_ISSUE_ITEM <trim prefix="SET" suffixOverrides=",">
<if test="et.handle!=null">HANDLE=#{et.handle},</if>
<if test="et.site!=null">SITE=#{et.site},</if>
<if test="et.callItemNo!=null">CALL_ITEM_NO=#{et.callItemNo},</if>
<if test="et.shopOrder!=null">SHOP_ORDER=#{et.shopOrder},</if>
<if test="et.sfc!=null">SFC=#{et.sfc},</if>
<if test="et.item!=null">ITEM=#{et.item},</if>
<if test="et.inventory!=null">INVENTORY=#{et.inventory},</if>
<if test="et.qty!=null">QTY=#{et.qty},</if>
@ -318,9 +277,6 @@
<if test="ew.entity!=null">
HANDLE=#{ew.entity.handle}
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>
@ -362,9 +318,6 @@
HANDLE=#{ew.entity.handle}
</if>
<if test="ew.entity.site!=null"> AND SITE=#{ew.entity.site}</if>
<if test="ew.entity.callItemNo!=null"> AND CALL_ITEM_NO=#{ew.entity.callItemNo}</if>
<if test="ew.entity.shopOrder!=null"> AND SHOP_ORDER=#{ew.entity.shopOrder}</if>
<if test="ew.entity.sfc!=null"> AND SFC=#{ew.entity.sfc}</if>
<if test="ew.entity.item!=null"> AND ITEM=#{ew.entity.item}</if>
<if test="ew.entity.inventory!=null"> AND INVENTORY=#{ew.entity.inventory}</if>
<if test="ew.entity.qty!=null"> AND QTY=#{ew.entity.qty}</if>

Loading…
Cancel
Save