diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java index 85bb73cd3..98af79956 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java @@ -11,6 +11,87 @@ public class BoardDTO { private String equTypeCode; private String equTypeName; private String shiftId; + private String factoryCode; + private String equipmentTypeCode; + private String planProduction; + private String actProduction; + private List plans; + private List acts; + private List days; + private String startTime; + private String endTime; + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public List getDays() { + return days; + } + + public void setDays(List days) { + this.days = days; + } + + public String getPlanProduction() { + return planProduction; + } + + public void setPlanProduction(String planProduction) { + this.planProduction = planProduction; + } + + public String getActProduction() { + return actProduction; + } + + public void setActProduction(String actProduction) { + this.actProduction = actProduction; + } + + public List getPlans() { + return plans; + } + + public void setPlans(List plans) { + this.plans = plans; + } + + public List getActs() { + return acts; + } + + public void setActs(List acts) { + this.acts = acts; + } + + public String getEquipmentTypeCode() { + return equipmentTypeCode; + } + + public void setEquipmentTypeCode(String equipmentTypeCode) { + this.equipmentTypeCode = equipmentTypeCode; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } public String getShiftId() { return shiftId; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java index e3cb8f10d..513119735 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java @@ -1,19 +1,21 @@ package com.op.mes.controller; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; +import com.op.mes.domain.MesBoard; import com.op.mes.service.IMesBoradService; import com.op.system.api.domain.dto.BoardDTO; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @RestController @RequestMapping("/mesborad") -public class MesBoardController { +public class MesBoardController extends BaseController { @Autowired private IMesBoradService iMesBoradService; @@ -25,5 +27,21 @@ public class MesBoardController { public AjaxResult finishProductBoard(@RequestBody BoardDTO boardDTO) { return iMesBoradService.finishProductBoard(boardDTO); } + /******************************自动化产线方案看板****************************************/ + /**根据工厂获取产线**/ + @GetMapping("/getLineList") + public List getLineList(BoardDTO mesBoard) { + return iMesBoradService.getLineList(mesBoard); + } + @PostMapping("/getProduction15Days") + public AjaxResult getProduction15Days(BoardDTO mesBoard) { + if (StringUtils.isBlank(mesBoard.getFactoryCode())) { + return error("[facotryCode] 不能为空"); + } + if (StringUtils.isBlank(mesBoard.getEquCode())) { + return error("[equCode] 不能为空"); + } + return success(iMesBoradService.getProduction15Days(mesBoard)); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java index 39748bb2a..135ad8c65 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java @@ -19,6 +19,24 @@ public class MesBoard { private List files; private String workshopCode; private String workshopName; + private String lineCode; + private String lineName; + + public String getLineCode() { + return lineCode; + } + + public void setLineCode(String lineCode) { + this.lineCode = lineCode; + } + + public String getLineName() { + return lineName; + } + + public void setLineName(String lineName) { + this.lineName = lineName; + } public String getWorkshopCode() { return workshopCode; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java index d3a0049ed..3377fceb9 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java @@ -2,6 +2,7 @@ package com.op.mes.mapper; import com.op.common.core.domain.BaseFileData; import com.op.mes.domain.MesBoard; +import com.op.mes.domain.MesReportWork; import com.op.mes.domain.dto.BaseEquipmentDto; import com.op.mes.domain.dto.LGInfoDto; import com.op.system.api.domain.SysDept; @@ -9,6 +10,7 @@ import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.dto.BoardDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDataItemsDTO; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -72,4 +74,9 @@ public interface MesMapper { List> daySenvenProduction(); List> ProductionInProgress(); + + List getLineList(BoardDTO boardDTO); + + @MapKey("dayStr") + Map getProduction15Days(BoardDTO boardDTO); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java index dc5ea48c3..175b7cc2e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java @@ -3,6 +3,12 @@ package com.op.mes.service; import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.domain.dto.BoardDTO; +import java.util.List; + public interface IMesBoradService { public AjaxResult finishProductBoard(BoardDTO boardDTO); + + public List getLineList(BoardDTO boardDTO); + + public BoardDTO getProduction15Days(BoardDTO mesBoard); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java index 1be43cb68..e09a7e99e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java @@ -1,17 +1,19 @@ package com.op.mes.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.utils.DateUtils; import com.op.common.core.web.domain.AjaxResult; +import com.op.mes.domain.MesReportWork; import com.op.mes.mapper.MesMapper; import com.op.mes.service.IMesBoradService; import com.op.system.api.domain.dto.BoardDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; @Service public class MesBoradServiceImpl implements IMesBoradService { @@ -34,4 +36,86 @@ public class MesBoradServiceImpl implements IMesBoradService { map.put("ProductionInProgress", ProductionInProgress); return AjaxResult.success(map); } + + @Override + public List getLineList(BoardDTO boardDTO) { + DynamicDataSourceContextHolder.push(boardDTO.getFactoryCode()); + boardDTO.setEquipmentTypeCode("equ_type_bzx"); + List lineList = mesMapper.getLineList(boardDTO); + return lineList; + } + + @Override + public BoardDTO getProduction15Days(BoardDTO boardDTO) { + DynamicDataSourceContextHolder.push(boardDTO.getFactoryCode()); + BoardDTO dto = new BoardDTO(); + + String nowDate = DateUtils.getDate(); + + List days = this.getDays(15); + //days + dto.setDays(days); + boardDTO.setStartTime(days.get(0)); + boardDTO.setEndTime(days.get(days.size()-1)); + Map pros15 = mesMapper.getProduction15Days(boardDTO); + MesReportWork todaydto = pros15.get(nowDate); + if(todaydto != null){ + dto.setPlanProduction(todaydto.getQuantity().toString().replace(".00","")); + dto.setActProduction(todaydto.getQuantityFeedback().toString()); + }else{ + dto.setPlanProduction("0"); + dto.setActProduction("0"); + } + //plans; + List plans = new ArrayList<>(); + List acts = new ArrayList<>(); + //acts; + for(String dayStr:days){ + MesReportWork workR = pros15.get(dayStr); + if(workR != null){ + plans.add(workR.getQuantity().toString()); + acts.add(workR.getQuantityFeedback().toString()); + }else{ + plans.add("0"); + acts.add("0"); + } + } + dto.setPlans(plans); + dto.setActs(acts); + return dto; + } + + //获取当前日期前几天 + private List getDays(int dayNum){ + List days = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + Calendar cal = Calendar.getInstance(); + //获取前面的时间用-负号 + Date date = new Date(); + for(int num=0;num days = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + Calendar cal = Calendar.getInstance(); + //获取前面的时间用-负号 + Date date = new Date(); + for(int num=0;num<15;num++){ + cal.setTime(date); + cal.add(Calendar.DAY_OF_MONTH, -num); + days.add(sdf.format(cal.getTime())); + } + Collections.reverse(days); + + System.out.println(JSONObject.toJSONString(days)); + } } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index f5124317d..56844260f 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -286,4 +286,23 @@ A.unit, C.equipment_name; + + + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index d9862ceff..55379f8b3 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -52,7 +52,6 @@ and factory_code = #{factoryCode} and recoil = #{recoil} and del_flag = '0' - and quantity != '.00' @@ -94,7 +93,7 @@ ) - and bp.product_code like '00000004%' + and bp.product_code not like '00000001%' diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java index e39cbc74a..6bc925aae 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java @@ -95,9 +95,7 @@ public class BaseEquipmentController extends BaseController { public AjaxResult add(@RequestBody BaseEquipment baseEquipment) { if (baseEquipmentService.checkEquipmentCodeUnique(baseEquipment)) { return AjaxResult.error("设备编码已存在!"); - } else if (baseEquipmentService.checkEquipmentNameUnique(baseEquipment)) { - return AjaxResult.error("设备名称已存在!"); - } else { + }else{ return toAjax(baseEquipmentService.insertBaseEquipment(baseEquipment)); } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index 9a0d25186..fff8eab10 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -307,6 +307,40 @@ public class WmsToWCSmissionController { return AjaxResult.success(wmsProductPutService.ScanCodeSingleBox(wmsProductPutTrayCode)); } + + + /** + * 成品销售退货--查询接口 + * + */ + @PostMapping("/FinishedProductSalesReturn") + public AjaxResult FinishedProductSalesReturn(@RequestBody WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { + return AjaxResult.success(wmsProductPutService.FinishedProductSalesReturn(wmsRuturnPutEmbryo)); + } + + /** + * 成品销售退货--确认接口 + * + */ + @PostMapping("/FinishedProductSalesReturnConfirm") + public AjaxResult FinishedProductSalesReturnConfirm(@RequestBody WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { + return AjaxResult.success(wmsProductPutService.FinishedProductSalesReturnConfirm(wmsRuturnPutEmbryo)); + } + + + + /** + * 成品调拨出库--查询接口 + * + */ + @PostMapping("/selectFinishedProductTransferAndOutbound") + public AjaxResult selectFinishedProductTransferAndOutbound(@RequestBody WmsAllocationOutEmbryo wmsRuturnPutEmbryo) { + return AjaxResult.success(wmsProductPutService.selectFinishedProductTransferAndOutbound(wmsRuturnPutEmbryo)); + } + + + + /** * 手持白胚入库查询 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java index 95b2a3e33..e4075efc0 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java @@ -71,6 +71,19 @@ public class OdsProcureOutOrder extends BaseEntity { */ @Excel(name = "型号编码") private String materialCode; + /** + * 型号编码--用于展示 + */ + @Excel(name = "型号编码") + private String materialCodeKEN; + + public String getMaterialCodeKEN() { + return materialCodeKEN; + } + + public void setMaterialCodeKEN(String materialCodeKEN) { + this.materialCodeKEN = materialCodeKEN; + } /** * 型号名称 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java new file mode 100644 index 000000000..702ce7610 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java @@ -0,0 +1,15 @@ +package com.op.wms.domain; + +import com.op.common.core.web.domain.BaseEntity; + +/** + * 成品调拨单 + */ +public class WmsAllocationOutEmbryo extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private String id; +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRuturnPutEmbryo.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRuturnPutEmbryo.java new file mode 100644 index 000000000..91ee6a852 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsRuturnPutEmbryo.java @@ -0,0 +1,469 @@ +package com.op.wms.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 成品销售退货对象 + */ +public class WmsRuturnPutEmbryo extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * ID + */ + private String id; + /** + * 工厂编码 + */ + @Excel(name = "工厂编码") + private String factoryCode; + /** + *退货单 + */ + @Excel(name = "退货单") + private String productOrder; + + /** + *仓库编码 + */ + @Excel(name = "仓库编码") + private String whCode; + + /** + *库区编码 + */ + @Excel(name = "库区编码") + private String waCode; + + /** + *库位编码 + */ + @Excel(name = "库位编码") + private String wlCode; + + /** + *产品名称 + */ + @Excel(name = "产品名称") + private String productName; + + + /** + *产品编码 + */ + @Excel(name = "产品编码") + private String productCode; + /** + *产品分类 + */ + @Excel(name = "产品分类") + private String productSort; + /** + *规格型号 + */ + @Excel(name = "规格型号") + private String speciFication; + /** + *单位 + */ + @Excel(name = "单位") + private String unitOfMeasure; + /** + *计划入库数量 + */ + @Excel(name = "计划入库数量") + private BigDecimal planQuantity; + /** + *入库数量 + */ + @Excel(name = "入库数量") + private BigDecimal putQuantity; + /** + *入库状态 + */ + @Excel(name = "入库状态") + private String status; + /** + *过账SAP状态 + */ + @Excel(name = "过账SAP状态") + private String sapStatus; + /** + *过账SAP凭证 + */ + @Excel(name = "过账SAP凭证") + private String sapProof; + /** + *过账sap返回信息 + */ + @Excel(name = "过账sap返回信息") + private String sapMessage; + /** + *入库时间 + */ + @Excel(name = "入库时间") + private Date putDate; + /** + *预留字段1 + */ + @Excel(name = "预留字段1") + private String attr1; + + /** + *预留字段2 + */ + @Excel(name = "预留字段2") + private String attr2; + + + /** + *预留字段3 + */ + @Excel(name = "预留字段3") + private String attr3; + + /** + *预留字段4 + */ + @Excel(name = "预留字段4") + private String attr4; + /** + *预留字段5 + */ + @Excel(name = "预留字段5") + private String attr5; + /** + *预留字段6 + */ + @Excel(name = "预留字段6") + private String attr6; + /** + *预留字段7 + */ + @Excel(name = "预留字段7") + private String attr7; + /** + *预留字段8 + */ + @Excel(name = "预留字段8") + private String attr8; + + /** + *预留字段9 + */ + @Excel(name = "预留字段9") + private String attr9; + /** + *预留字段10 + */ + @Excel(name = "预留字段10") + private String attr10; + /** + *创建人 + */ + @Excel(name = "创建人") + private String createBy; + /** + *创建时间 + */ + @Excel(name = "创建时间") + private Date createTime; + + /** + *修改人 + */ + @Excel(name = "修改人") + private String updateBy; + + /** + *修改时间 + */ + @Excel(name = "修改时间") + private Date updateTime; + List wmsProductPut; + private String activeFlag; + + public String getActiveFlag() { + return activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public List getWmsProductPut() { + return wmsProductPut; + } + + public void setWmsProductPut(List wmsProductPut) { + this.wmsProductPut = wmsProductPut; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getProductOrder() { + return productOrder; + } + + public void setProductOrder(String productOrder) { + this.productOrder = productOrder; + } + + public String getWhCode() { + return whCode; + } + + public void setWhCode(String whCode) { + this.whCode = whCode; + } + + public String getWaCode() { + return waCode; + } + + public void setWaCode(String waCode) { + this.waCode = waCode; + } + + public String getWlCode() { + return wlCode; + } + + public void setWlCode(String wlCode) { + this.wlCode = wlCode; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductSort() { + return productSort; + } + + public void setProductSort(String productSort) { + this.productSort = productSort; + } + + public String getSpeciFication() { + return speciFication; + } + + public void setSpeciFication(String speciFication) { + this.speciFication = speciFication; + } + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public BigDecimal getPlanQuantity() { + return planQuantity; + } + + public void setPlanQuantity(BigDecimal planQuantity) { + this.planQuantity = planQuantity; + } + + public BigDecimal getPutQuantity() { + return putQuantity; + } + + public void setPutQuantity(BigDecimal putQuantity) { + this.putQuantity = putQuantity; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getSapStatus() { + return sapStatus; + } + + public void setSapStatus(String sapStatus) { + this.sapStatus = sapStatus; + } + + public String getSapProof() { + return sapProof; + } + + public void setSapProof(String sapProof) { + this.sapProof = sapProof; + } + + public String getSapMessage() { + return sapMessage; + } + + public void setSapMessage(String sapMessage) { + this.sapMessage = sapMessage; + } + + public Date getPutDate() { + return putDate; + } + + public void setPutDate(Date putDate) { + this.putDate = putDate; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr2() { + return attr2; + } + + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr3() { + return attr3; + } + + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr4() { + return attr4; + } + + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr5() { + return attr5; + } + + public void setAttr5(String attr5) { + this.attr5 = attr5; + } + + public String getAttr6() { + return attr6; + } + + public void setAttr6(String attr6) { + this.attr6 = attr6; + } + + public String getAttr7() { + return attr7; + } + + public void setAttr7(String attr7) { + this.attr7 = attr7; + } + + public String getAttr8() { + return attr8; + } + + public void setAttr8(String attr8) { + this.attr8 = attr8; + } + + public String getAttr9() { + return attr9; + } + + public void setAttr9(String attr9) { + this.attr9 = attr9; + } + + public String getAttr10() { + return attr10; + } + + public void setAttr10(String attr10) { + this.attr10 = attr10; + } + + @Override + public String getCreateBy() { + return createBy; + } + + @Override + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + @Override + public Date getCreateTime() { + return createTime; + } + + @Override + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + @Override + public String getUpdateBy() { + return updateBy; + } + + @Override + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + @Override + public Date getUpdateTime() { + return updateTime; + } + + @Override + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java new file mode 100644 index 000000000..022034ba8 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java @@ -0,0 +1,17 @@ +package com.op.wms.mapper; + +import com.op.wms.domain.WmsRuturnPutEmbryo; + +import java.util.List; + +public interface WmsRuturnPutEmbryoMapper { + + + List selectWmsRuturnPutEmbryo(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); + + void updateWmsRuturnPutEmbryo(WmsRuturnPutEmbryo wmsRuturnPutEmbryo1); + + WmsRuturnPutEmbryo selectWmsRuturnPutEmbryoByid(WmsRuturnPutEmbryo wmsRuturnPutEmbryo1); + + void insertWmsRuturnPutEmbryoMapperRecords(WmsRuturnPutEmbryo wmsProductPutRecords); +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java index 807868122..dea2995d6 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java @@ -108,4 +108,16 @@ public interface IWmsProductPutService { * */ List< WmsSellOutEmbryo> selectQueryFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo); + + List< WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); + + /** + * 成品销售退货- + * @param wmsRuturnPutEmbryo + * @return + */ + String FinishedProductSalesReturnConfirm(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); + + + List selectFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 015878ea2..4bcef6a8f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -61,6 +61,8 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { private WmsProductPutTrayCodeMapper wmsProductPutTrayCodeMapper; @Autowired private WmsSellOutEmbryoMapper wmsSellOutEmbryoMapper; + @Autowired + private WmsRuturnPutEmbryoMapper wmsRuturnPutEmbryoMapper; /** * 查询成品生产入库 @@ -787,4 +789,105 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoList(wmsSellOutEmbryo); return wmsSellOutEmbryoList; } + + @Override + public List FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { + DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); + List wmsRuturnPutEmbryoList= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryo(wmsRuturnPutEmbryo); + return wmsRuturnPutEmbryoList; + } + + @Override + public String FinishedProductSalesReturnConfirm(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { + DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date date = new Date(); + String formattedDate = dateFormat.format(date);//批次 + List wmsProductPutList = wmsRuturnPutEmbryo.getWmsProductPut(); + WmsRuturnPutEmbryo wmsRuturnPutEmbryo1 = new WmsRuturnPutEmbryo(); + //wms_product_put + wmsRuturnPutEmbryo1.setId(wmsRuturnPutEmbryo.getId()); + //先查询一下,看看这次是不是可以出完 + WmsRuturnPutEmbryo wmsRuturnPutEmbryo2= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryoByid(wmsRuturnPutEmbryo1); + BigDecimal allTem= wmsRuturnPutEmbryo2.getPlanQuantity(); + BigDecimal putTem= wmsRuturnPutEmbryo2.getPutQuantity(); + //BigDecimal putQuantity= putTem.add(new BigDecimal(wmsRuturnPutEmbryo.get())); + int result = wmsRuturnPutEmbryo.getPutQuantity().compareTo(allTem); + if (result == 0) { + wmsRuturnPutEmbryo2.setStatus("1");//0是未完成,1是完成 + } + wmsRuturnPutEmbryo2.setPutQuantity(wmsRuturnPutEmbryo.getPutQuantity()); + wmsRuturnPutEmbryo2.setUpdateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsRuturnPutEmbryo2.setUpdateTime(new Date()); + wmsRuturnPutEmbryoMapper.updateWmsRuturnPutEmbryo(wmsRuturnPutEmbryo2); + + String SUCCESS = "操作成功"; + for (WmsProductPut wmsProductPut1 : + wmsProductPutList) { + WmsRuturnPutEmbryo wmsProductPutRecords = new WmsRuturnPutEmbryo(); + wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); + wmsProductPutRecords.setProductOrder(wmsRuturnPutEmbryo.getProductOrder()); + wmsProductPutRecords.setProductName(wmsRuturnPutEmbryo.getProductName()); + wmsProductPutRecords.setProductCode(wmsRuturnPutEmbryo.getProductCode()); + wmsProductPutRecords.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 + + wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode());//库位编码 + wmsProductPutRecords.setAttr1(wmsProductPut1.getSn());////托盘号编码 + wmsProductPutRecords.setAttr2(wmsProductPut1.getNumber());//箱数 + wmsProductPutRecords.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsProductPutRecords.setCreateTime(new Date()); + wmsProductPutRecords.setActiveFlag("1"); + wmsRuturnPutEmbryoMapper.insertWmsRuturnPutEmbryoMapperRecords(wmsProductPutRecords); + //wms_fp_storage_news_sn + WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); + wmsFpStorageNewsSn.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 + wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNewsSn.setOrderNo(wmsRuturnPutEmbryo2.getId()); + wmsFpStorageNewsSn.setProductCode(wmsRuturnPutEmbryo.getProductCode()); + wmsFpStorageNewsSn.setProductName(wmsRuturnPutEmbryo.getProductName()); + wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); + wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); + wmsFpStorageNewsSn.setUserDefined2(formattedDate); + wmsFpStorageNewsSn.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsFpStorageNewsSn.setCreateTime(new Date()); + wmsFpStorageNewsSn.setActiveFlag("1"); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); +// wms_fp_storage_news + WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); + + wmsFpStorageNews.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 + wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNews.setStorageType("成品"); + wmsFpStorageNews.setProductCode(wmsRuturnPutEmbryo.getProductCode()); + wmsFpStorageNews.setProductName(wmsRuturnPutEmbryo.getProductName()); + wmsFpStorageNews.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setUserDefined1(wmsRuturnPutEmbryo.getUnitOfMeasure()); + List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); + wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + wmsFpStorageNews.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsFpStorageNews.setCreateTime(new Date()); + if (wmsFpStorageNewsList.size() > 0) { + WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); + BigDecimal amount = wmsFpStorageNews1.getAmount(); + BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); + wmsFpStorageNews1.setAmount(amountAdd); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); + } else { + wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + } + } + return SUCCESS; + } + + @Override + public List selectFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo) { + + + return null; + } } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml index 608035f7d..ca65d8fa9 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml @@ -9,6 +9,7 @@ + @@ -283,6 +284,7 @@ mes_prepare.workorder_name, mes_prepare_detail.prepare_id User_Defined2, mes_prepare_detail.material_code Material_Code, + SUBSTRING(mes_prepare_detail.material_code, 8, LEN(mes_prepare_detail.material_code)) AS materialCodeKEN, mes_prepare_detail.material_name Material_Desc, mes_prepare_detail.prod_type User_Defined1, mes_prepare_detail.unit Unit, diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml index b69649d52..3b3be85ec 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml @@ -48,7 +48,8 @@ + SELECT + wms_ruturn_put_embryo.id , + wms_ruturn_put_embryo.factory_code As factoryCode, + wms_ruturn_put_embryo.product_order As productOrder , + wms_ruturn_put_embryo.wh_code As whCode, + wms_ruturn_put_embryo.wa_code As waCode, + wms_ruturn_put_embryo.wl_code As wlCode, + wms_ruturn_put_embryo.product_name As productName, + wms_ruturn_put_embryo.product_code As productCode, + wms_ruturn_put_embryo.product_sort As productSort, + wms_ruturn_put_embryo.specification As speciFication, + wms_ruturn_put_embryo.unit_of_measure As unitOfMeasure, + wms_ruturn_put_embryo.plan_quantity As planQuantity, + COALESCE(wms_ruturn_put_embryo.put_quantity, 0) AS putQuantity, + wms_ruturn_put_embryo.status As status, + wms_ruturn_put_embryo.SAP_status As sapStatus, + wms_ruturn_put_embryo.SAP_proof As sapProof, + wms_ruturn_put_embryo.SAP_message As sapMessage, + wms_ruturn_put_embryo.put_date As putDate, + wms_ruturn_put_embryo.attr1 , + wms_ruturn_put_embryo.attr2 , + wms_ruturn_put_embryo.attr3 , + wms_ruturn_put_embryo.attr4 , + wms_ruturn_put_embryo.attr5 , + wms_ruturn_put_embryo.attr6 , + wms_ruturn_put_embryo.attr7, + wms_ruturn_put_embryo.attr8, + wms_ruturn_put_embryo.attr9, + wms_ruturn_put_embryo.attr10, + wms_ruturn_put_embryo.create_by As createBy, + wms_ruturn_put_embryo.create_time As createTime, + wms_ruturn_put_embryo.update_by As updateBy, + wms_ruturn_put_embryo.update_time As updateTime + FROM + wms_ruturn_put_embryo + where + active_flag='1' and product_order=#{productOrder} + + + + update wms_ruturn_put_embryo + + wh_code = #{whCode}, + wa_code = #{waCode}, + wl_code = #{wlCode}, + product_order = #{productOrder}, + product_code = #{productCode}, + product_name = #{productName}, + plan_quantity = #{planQuantity}, + put_quantity = #{putQuantity}, + status = #{status}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + attr5 = #{attr5}, + attr6 = #{attr6}, + attr7 = #{attr7}, + attr8 = #{attr8}, + attr9 = #{attr9}, + attr10 = #{attr10}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + + where id=#{id} + + + insert into wms_ruturn_put_embryo_record + + id, + factory_code, + product_order, + wh_code, + wa_code, + wl_code, + product_name, + product_code, + product_sort, + specification, + unit_of_measure, + plan_quantity, + put_quantity, + status, + SAP_status, + SAP_proof, + SAP_message, + put_date, + attr1, + attr2, + attr3, + attr4, + attr5, + attr6, + attr7, + attr8, + attr9, + attr10, + create_by, + create_time, + update_by, + update_time, + active_flag, + + + #{id}, + #{factoryCode}, + #{productOrder}, + #{whCode}, + #{waCode}, + #{wlCode}, + #{productName}, + #{productCode}, + #{productSort}, + #{specification}, + #{unitOfMeasure}, + #{planQuantity}, + #{putQuantity}, + #{status}, + #{SAPStatus}, + #{SAPProof}, + #{SAPMessage}, + #{putDate}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{attr5}, + #{attr6}, + #{attr7}, + #{attr8}, + #{attr9}, + #{attr10}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{activeFlag}, + + +