diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquPlanController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquPlanController.java index b6729a343..a0412e633 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquPlanController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquPlanController.java @@ -118,7 +118,7 @@ public class EquPlanController extends BaseController { * 导出计划列表 */ @RequiresPermissions("device:inspectionPlan:export") - @Log(title = "计划", businessType = BusinessType.EXPORT) + @Log(title = "导出计划", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, EquPlan equPlan) { List list = equPlanService.selectEquPlanList(equPlan); @@ -139,7 +139,7 @@ public class EquPlanController extends BaseController { * 新增计划 */ @RequiresPermissions("device:inspectionPlan:add") - @Log(title = "计划", businessType = BusinessType.INSERT) + @Log(title = "新增计划", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody EquPlan equPlan) { return equPlanService.insertEquPlan(equPlan); @@ -149,7 +149,7 @@ public class EquPlanController extends BaseController { * 修改计划 */ @RequiresPermissions("device:inspectionPlan:edit") - @Log(title = "计划", businessType = BusinessType.UPDATE) + @Log(title = "修改计划", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody EquPlan equPlan) { return equPlanService.updateEquPlan(equPlan); @@ -159,7 +159,7 @@ public class EquPlanController extends BaseController { * 删除计划 */ @RequiresPermissions("device:inspectionPlan:remove") - @Log(title = "计划", businessType = BusinessType.DELETE) + @Log(title = "删除计划", businessType = BusinessType.DELETE) @DeleteMapping("/{planIds}") public AjaxResult remove(@PathVariable String[] planIds) { return equPlanService.deleteEquPlanByPlanIds(planIds); diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlan.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlan.java index f2d4b5032..8ffb5b7b1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlan.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlan.java @@ -205,6 +205,9 @@ public class EquPlan extends BaseEntity { @Excel(name = "委外原因") private String workReason; + //jgy 新增 生产线体编码 每天生成线体信息的时候只生成计划生产的 + private String lineCode; + public String getWorkOutsourcingUnit() { return workOutsourcingUnit; } @@ -581,6 +584,14 @@ public class EquPlan extends BaseEntity { return delFlag; } + public void setLineCode(String lineCode) { + this.lineCode = lineCode; + } + + public String getLineCode() { + return lineCode; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceTaskMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceTaskMapper.java index d812d27e2..f3b252f89 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceTaskMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceTaskMapper.java @@ -1,12 +1,8 @@ package com.op.device.mapper; -import com.op.common.core.domain.BaseFileData; -import com.op.device.domain.EquFile; import com.op.device.domain.EquOrder; import com.op.device.domain.EquPlan; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - import java.util.List; /** @@ -23,4 +19,6 @@ public interface DeviceTaskMapper { EquOrder getNewTaskOrder(EquPlan quPlan); EquOrder getNewTaskOrder0(EquPlan plan); + + List getPlanProduceLine();//计划生产产线查询 } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index 27d3c4295..1430fd296 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -1,14 +1,12 @@ package com.op.device.service.impl; -import com.baomidou.dynamic.datasource.annotation.DS; +import com.alibaba.fastjson.JSONArray; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; -import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; -import com.op.common.security.utils.SecurityUtils; import com.op.device.domain.*; import com.op.device.mapper.*; import com.op.device.service.IDeviceTaskService; @@ -19,18 +17,15 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.success; @@ -253,8 +248,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { EquPlan equPlan = new EquPlan(); equPlan.setPlanType("spotInspection"); List plans = deviceTaskMapper.getPlans(equPlan); + List producePlans = this.confirmPlanProduceLine(plans,poolName); - for (EquPlan plan : plans) { + for (EquPlan plan : producePlans) { EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { //生成点检计划 @@ -560,4 +556,48 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { System.out.println("------>" + batchCount); } + //筛选出 当天要计划生成的数据 + private List confirmPlanProduceLine(List plans,String poolName) { + //查询到当天要生产的产线 + List planProduceLine = deviceTaskMapper.getPlanProduceLine();//计划生产产线 + List planProduceLineCode = new ArrayList<>(); + List produceLine = new ArrayList<>(); + + for(String str : planProduceLine){ + str = str.substring(1, str.length() - 1); + String[] subArrays = str.split("],\\["); + for (String subArrayStr : subArrays) { + subArrayStr = subArrayStr.substring(1, subArrayStr.length() - 1); + String[] parts = subArrayStr.split("\",\""); + for (int i = 1 ; i < parts.length ; i++) { + if(i == parts.length - 1){ + planProduceLineCode.add(parts[i].replaceAll("\"", "")); + }else{ + planProduceLineCode.add(parts[i]); + } + } + } + } + + List uniqueLineCodeList = planProduceLineCode.stream().distinct().collect(Collectors.toList()); + List returnPlanList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(uniqueLineCodeList) && !CollectionUtils.isEmpty(plans)){ + for(String lineCode : uniqueLineCodeList){ + for(EquPlan equPlan : plans){ + if(!StringUtils.isBlank(equPlan.getLineCode())){ + if(equPlan.getLineCode().equals(lineCode)){ + returnPlanList.add(equPlan); + produceLine.add(lineCode);//生成产线 + } + } + } + } + } + + produceLine = produceLine.stream().distinct().collect(Collectors.toList()); + logger.info(poolName + "工厂今日生成的产线:" + JSONArray.toJSONString(produceLine)); + logger.info(poolName + "工厂返回生成今日生产的产线点检计划信息:" + JSONArray.toJSONString(returnPlanList)); + return returnPlanList; + } + } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml index 038211833..42687941e 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml @@ -25,11 +25,18 @@ ep.plan_code planCode, epe.equipment_code equipmentCode, epe.equipment_name equipmentName, + ebae.equipment_code lineCode, epe.id planEquId from equ_plan ep left join equ_plan_equ epe on ep.plan_code = epe.plan_code + left join equ_bind_auxiliary_equipment ebae on epe.equipment_code = ebae.auxiliary_equipment_code where ep.del_flag = '0' and epe.del_flag = '0' and ep.plan_status = '0' - and epe.equipment_code in ( select be.equipment_code from base_equipment be where be.del_flag = '0' ) + and epe.equipment_code in( + select be.equipment_code from base_equipment be + left join equ_bind_auxiliary_equipment ebae0 on be.equipment_code = ebae0.auxiliary_equipment_code + where be.del_flag = '0' + and ebae0.del_flag = '0' + ) and ep.plan_type = #{planType} and CONVERT(varchar(10),GETDATE(), 120) >= CONVERT(varchar(10),ep.plan_loop_start, 120) @@ -66,4 +73,11 @@ and del_flag = '0' order by create_time desc + + diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 892da1aa4..da240a0c0 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -602,19 +602,19 @@ public class MesReportWorkController extends BaseController { public List getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) { return mesReportWorkService.getNewPrepareData(mesPrepareDetail); } - /**删除新增的报工物料组成**/ - @DeleteMapping("/deleteBomRowNow/{id}") - public AjaxResult deleteBomRowNow(@PathVariable String id) { - return toAjax(mesReportWorkService.deleteBomRowNow(id)); + /**删除新增的报工物料组成**/ + @DeleteMapping("/deleteBomRowNow/{id}") + public AjaxResult deleteBomRowNow(@PathVariable String id) { + return toAjax(mesReportWorkService.deleteBomRowNow(id)); + } + + /**删除报工数据**/ + @DeleteMapping("/deleteReportNow/{reportCode}") + public AjaxResult deleteReportNow(@PathVariable String reportCode) { + return toAjax(mesReportWorkService.deleteReportNow(reportCode)); } - /**删除报工数据**/ - @DeleteMapping("/deleteReportNow/{reportCode}") - public AjaxResult deleteReportNow(@PathVariable String reportCode) { - return toAjax(mesReportWorkService.deleteReportNow(reportCode)); - } - - //获取仓库下拉列表 + //获取仓库下拉列表 @GetMapping("/getWarehouseList") public List getWarehouseList(MesReportWorkConsume workConsume) { List rlist = mesReportWorkService.getWarehouseList(workConsume); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java index 3861064c5..3fba4cd69 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java @@ -51,6 +51,9 @@ public class MesReportWorkConsume extends BaseEntity { @Excel(name = "数量") private BigDecimal quantity; + private BigDecimal quantitySplit; + private BigDecimal quantitySplitBom; + /** * 单位 */ @@ -391,6 +394,22 @@ public class MesReportWorkConsume extends BaseEntity { return id; } + public BigDecimal getQuantitySplit() { + return quantitySplit; + } + + public void setQuantitySplit(BigDecimal quantitySplit) { + this.quantitySplit = quantitySplit; + } + + public BigDecimal getQuantitySplitBom() { + return quantitySplitBom; + } + + public void setQuantitySplitBom(BigDecimal quantitySplitBom) { + this.quantitySplitBom = quantitySplitBom; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 44a56bb09..4edda048b 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -358,12 +358,25 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer pTabs.setTitle("第"+i+"层工单物料损耗"); mesReportWorkConsume.setParentOrder("0"); List liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); - + BigDecimal actPro = BigDecimal.ZERO; + BigDecimal planPro = BigDecimal.ZERO; if(!CollectionUtils.isEmpty(liblist0)){ - BigDecimal actPro = mesReportWorkConsumeMapper.getActAllProduct(mesReportWorkConsume); + actPro = mesReportWorkConsumeMapper.getActAllProduct(mesReportWorkConsume); liblist0.get(0).setQuantityFeedback(actPro); + + planPro = liblist0.get(0).getQuantitySplit(); } + for(MesReportWorkConsume lib0:liblist0){ + //bom用量=单位数量/订单理论数量*报工数量 + lib0.setQuantitySplitBom(new BigDecimal(lib0.getErfmg()) + .divide(lib0.getQuantitySplit(),6,BigDecimal.ROUND_HALF_UP) + .multiply(actPro) + ); + } + + + pTabs.setLibList(liblist0); tabs.add(pTabs); @@ -375,6 +388,10 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer sTabs.setTitle("第"+xh+"层工单物料损耗"); mesReportWorkConsume.setWorkorderCode(sonWorkOrder.getWorkorderCode()); List liblist = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + for(MesReportWorkConsume lib:liblist){ + lib.setQuantitySplitBom(actPro.multiply(new BigDecimal(lib.getErfmg())) + .divide(planPro,6,BigDecimal.ROUND_HALF_UP)); + } sTabs.setLibList(liblist); tabs.add(sTabs); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml index 9fe5b0b8d..64b4f86aa 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml @@ -98,6 +98,7 @@ left join mes_prepare mp on ow.workorder_code = mp.workorder_code left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id where ow.product_date = #{productDateStr} + and mpd.material_name not like '%白坯%' and mpd.material_name not like '%药液%' and mpd.recoil = #{recoil} and mp.del_flag = '0' and mpd.del_flag = '0' GROUP BY mpd.material_code, mpd.material_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 f5b9d049d..1f79ffec8 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 @@ -111,7 +111,7 @@ mrwc.unit, mrwc.create_time createTime, mrwc.recoil, - pow.workorder_code_sap workorderCodeSap, + pow.workorder_code_sap workorderCodeSap,pow.quantity_split quantitySplit, mrwc.attr1, mrwc.warehouse_code warehouseCode, mpd.quantity planQuantity,mpd.erfmg,mpd.erfme, diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index 77042c53c..635721097 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -521,4 +521,11 @@ public class QcCheckTaskIncomeController extends BaseController { task.setCheckType(taskInfo.getCheckType()); return toAjax(qcCheckTaskIncomeService.changeTaskDetail(task)); } + + //获取仓库下拉列表 + @GetMapping("/getWarehouseList") + public List getWarehouseList(QcCheckTaskIncome task) { + List rlist = qcCheckTaskIncomeService.getWarehouseList(task); + return rlist; + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 3971ab337..524b16124 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -161,4 +161,6 @@ public interface QcCheckTaskIncomeMapper { void deleteTaskUser(String deleteIds); QcCheckTaskIncome getTaskInfoByRecordId(String recordId); + + List getWarehouseList(); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index fae5392f3..a1c7ed1b8 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -117,4 +117,6 @@ public interface IQcCheckTaskIncomeService { QcCheckTaskIncome getTaskInfoByRecordId(String recordId); int changeTaskDetail(QcCheckTaskIncome task); + + List getWarehouseList(QcCheckTaskIncome task); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index ae8cbdc14..44807806f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -1352,6 +1352,12 @@ public class QcCheckTaskIncomeServiceImpl implements return qcCheckTaskIncomeMapper.getOaUserId(getUserIdList); } + @Override + @DS("#header.poolName") + public List getWarehouseList(QcCheckTaskIncome task) { + return qcCheckTaskIncomeMapper.getWarehouseList(); + } + public static void main(String args[]){ String str = "11,,22,"; System.out.println(str.split(",")[0]); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java index ac0f64bb4..5543b31db 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java @@ -396,7 +396,7 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - if("ds_1000".equals(dateSource.get("poolName"))){ + if(!"ds_999".equals(dateSource.get("poolName"))){ logger.info("++++++++++++" + dateSource.get("poolName") + "++++库存检验开始++++++++++"); Runnable run = () -> createCCFunc(dateSource.get("poolName")); executorService.execute(run); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 84038bf86..42b1db9ac 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -1276,7 +1276,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { List colNameArray = null; //数据列//cpkType,'-',q.ymdms Map mxMapData = null; - List cpkTypeList = cpkTypeList = qcStaticTableMapper.getCpkTypeList(qcCPKInfo); + List cpkTypeList = qcStaticTableMapper.getCpkTypeList(qcCPKInfo); if("day".equals(qcCPKInfo.getTableType())){//日报 colNameArray = this.getDayOfYear(qcCPKInfo.getYmArrayStart(),qcCPKInfo.getYmArrayEnd()); mxMapData = qcStaticTableMapper.getDLDataDay(qcCPKInfo); @@ -1344,9 +1344,9 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { dmap.put("date"+index,"0"); dmap.put("cpkAvg","0"); - dmap.put("lineName",""); - dmap.put("checkTypeName",""); - dmap.put("ruleName",""); +// dmap.put("lineName",""); +// dmap.put("checkTypeName",""); +// dmap.put("ruleName",""); serisedata.add(0.0); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index a9b77507c..3886ad4d9 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -869,6 +869,12 @@ from qc_check_task qct where qct.record_id in('${ids}') + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml index 11b2b9bed..fd1f31f9f 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml @@ -250,98 +250,67 @@ where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BpProcureOrderController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BpProcureOrderController.java new file mode 100644 index 000000000..69b18f7f3 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BpProcureOrderController.java @@ -0,0 +1,105 @@ +package com.op.wms.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.op.common.security.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.op.wms.domain.BpProcureOrder; +import com.op.wms.service.IBpProcureOrderService; +import com.op.common.log.annotation.Log; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.enums.BusinessType; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.page.TableDataInfo; + +/** + * 白坯原材料采购单Controller + * + * @author ruoyi + * @date 2024-11-04 + */ +@RestController +@RequestMapping("/bpprocure") +public class BpProcureOrderController extends BaseController +{ + @Autowired + private IBpProcureOrderService bpProcureOrderService; + + /** + * 查询白坯原材料采购单列表 + */ + @RequiresPermissions("wms:bpprocure:list") + @GetMapping("/list") + public TableDataInfo list(BpProcureOrder bpProcureOrder) + { + startPage(); + List list = bpProcureOrderService.selectBpProcureOrderList(bpProcureOrder); + return getDataTable(list); + } + + /** + * 导出白坯原材料采购单列表 + */ + @RequiresPermissions("wms:bpprocure:export") + @Log(title = "白坯原材料采购单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BpProcureOrder bpProcureOrder) + { + List list = bpProcureOrderService.selectBpProcureOrderList(bpProcureOrder); + ExcelUtil util = new ExcelUtil(BpProcureOrder.class); + util.exportExcel(response, list, "白坯原材料采购单数据"); + } + + /** + * 获取白坯原材料采购单详细信息 + */ + @RequiresPermissions("wms:bpprocure:query") + @GetMapping(value = "/{ID}") + public AjaxResult getInfo(@PathVariable("ID") String ID) + { + return success(bpProcureOrderService.selectBpProcureOrderByID(ID)); + } + + /** + * 新增白坯原材料采购单 + */ + @RequiresPermissions("wms:bpprocure:add") + @Log(title = "白坯原材料采购单", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BpProcureOrder bpProcureOrder) + { + return toAjax(bpProcureOrderService.insertBpProcureOrder(bpProcureOrder)); + } + + /** + * 修改白坯原材料采购单 + */ + @RequiresPermissions("wms:bpprocure:edit") + @Log(title = "白坯原材料采购单", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BpProcureOrder bpProcureOrder) + { + return toAjax(bpProcureOrderService.updateBpProcureOrder(bpProcureOrder)); + } + + /** + * 删除白坯原材料采购单 + */ + @RequiresPermissions("wms:bpprocure:remove") + @Log(title = "白坯原材料采购单", businessType = BusinessType.DELETE) + @DeleteMapping("/{IDs}") + public AjaxResult remove(@PathVariable String[] IDs) + { + return toAjax(bpProcureOrderService.deleteBpProcureOrderByIDs(IDs)); + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInController.java index 72b576a00..d37ba3498 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInController.java @@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.op.common.security.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; + import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -25,7 +25,7 @@ import com.op.common.core.web.page.TableDataInfo; /** * 白坯原材料入库Controller - * + * * @author ruoyi * @date 2024-10-28 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInDetailController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInDetailController.java index e038b8236..8f102db52 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInDetailController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BpRawMaterialInDetailController.java @@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.microsoft.windowsazure.exception.ServiceException; import com.op.common.security.annotation.RequiresPermissions; -import org.springframework.security.access.prepost.PreAuthorize; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -26,7 +26,7 @@ import com.op.common.core.web.page.TableDataInfo; /** * 白坯原材料入库明细Controller - * + * * @author ruoyi * @date 2024-10-29 */ @@ -78,7 +78,7 @@ public class BpRawMaterialInDetailController extends BaseController @RequiresPermissions("wms:detail:add") @Log(title = "白坯原材料入库明细", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException { + public AjaxResult add(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail){ return toAjax(bpRawMaterialInDetailService.insertBpRawMaterialInDetail(bpRawMaterialInDetail)); } 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 9297e2a57..c58812647 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 @@ -138,6 +138,13 @@ public class WmsToWCSmissionController { String result = odsProcureOrderService.ArrivalRegistration(odsProcureOrder); return success(result); } + @PostMapping("/ArrivalRegistrationSH") + public AjaxResult ArrivalRegistrationSH(@RequestBody OdsProcureOrder odsProcureOrder) { +// odsProcureOrderService.PurchaseOrderdeliPdas(odsProcureOrder); +// return success(); + String result = odsProcureOrderService.ArrivalRegistrationSH(odsProcureOrder); + return success(result); + } /** * 手持 -查询到货登记记录--已登记数量 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BpProcureOrder.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BpProcureOrder.java new file mode 100644 index 000000000..bfe3e9064 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BpProcureOrder.java @@ -0,0 +1,219 @@ +package com.op.wms.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 白坯原材料采购单对象 bp_procure_order + * + * @author ruoyi + * @date 2024-11-04 + */ +public class BpProcureOrder extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private String ID; + + /** 采购单号 */ + @Excel(name = "采购单号") + private String procureCode; + + /** 物料编码 */ + @Excel(name = "物料编码") + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 供应商 */ + @Excel(name = "供应商") + private String supplyName; + + /** 计划数量 */ + @Excel(name = "计划数量") + private Long planNumber; + + /** 已入库数量 */ + @Excel(name = "已入库数量") + private Long realityNumber; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 价格 */ + @Excel(name = "价格") + private Long price; + + /** 用户自定义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; + + public void setID(String ID) + { + this.ID = ID; + } + + public String getID() + { + return ID; + } + public void setProcureCode(String procureCode) + { + this.procureCode = procureCode; + } + + public String getProcureCode() + { + return procureCode; + } + public void setMaterialCode(String materialCode) + { + this.materialCode = materialCode; + } + + public String getMaterialCode() + { + return materialCode; + } + public void setMaterialName(String materialName) + { + this.materialName = materialName; + } + + public String getMaterialName() + { + return materialName; + } + public void setSupplyName(String supplyName) + { + this.supplyName = supplyName; + } + + public String getSupplyName() + { + return supplyName; + } + public void setPlanNumber(Long planNumber) + { + this.planNumber = planNumber; + } + + public Long getPlanNumber() + { + return planNumber; + } + public void setRealityNumber(Long realityNumber) + { + this.realityNumber = realityNumber; + } + + public Long getRealityNumber() + { + return realityNumber; + } + public void setUnit(String unit) + { + this.unit = unit; + } + + public String getUnit() + { + return unit; + } + public void setPrice(Long price) + { + this.price = price; + } + + public Long getPrice() + { + return price; + } + public void setAttr1(String attr1) + { + this.attr1 = attr1; + } + + public String getAttr1() + { + return attr1; + } + public void setAttr2(String attr2) + { + this.attr2 = attr2; + } + + public String getAttr2() + { + return attr2; + } + public void setAttr3(String attr3) + { + this.attr3 = attr3; + } + + public String getAttr3() + { + return attr3; + } + public void setAttr4(String attr4) + { + this.attr4 = attr4; + } + + public String getAttr4() + { + return attr4; + } + public void setAttr5(String attr5) + { + this.attr5 = attr5; + } + + public String getAttr5() + { + return attr5; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("ID", getID()) + .append("procureCode", getProcureCode()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("supplyName", getSupplyName()) + .append("planNumber", getPlanNumber()) + .append("realityNumber", getRealityNumber()) + .append("unit", getUnit()) + .append("price", getPrice()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("attr5", getAttr5()) + .toString(); + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BpRawMaterialInDetail.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BpRawMaterialInDetail.java index 536f256ef..19f920be7 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BpRawMaterialInDetail.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BpRawMaterialInDetail.java @@ -57,7 +57,7 @@ public class BpRawMaterialInDetail extends BaseEntity private Long amountReal; /** 备用 */ - @Excel(name = "备用") + @Excel(name = "采购单号") private String userDefined1; /** 备用 */ 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 2a5ce4842..6c5710b43 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 @@ -191,8 +191,19 @@ public class OdsProcureOutOrder extends BaseEntity { */ @Excel(name = "计划数量") private BigDecimal planNumber; + + private BigDecimal sapNumber; + private BigDecimal amount; + public BigDecimal getSapNumber() { + return sapNumber; + } + + public void setSapNumber(BigDecimal sapNumber) { + this.sapNumber = sapNumber; + } + public BigDecimal getAmount() { return amount; } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BpProcureOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BpProcureOrderMapper.java new file mode 100644 index 000000000..7648d521f --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BpProcureOrderMapper.java @@ -0,0 +1,61 @@ +package com.op.wms.mapper; + +import java.util.List; +import com.op.wms.domain.BpProcureOrder; + +/** + * 白坯原材料采购单Mapper接口 + * + * @author ruoyi + * @date 2024-11-04 + */ +public interface BpProcureOrderMapper +{ + /** + * 查询白坯原材料采购单 + * + * @param ID 白坯原材料采购单主键 + * @return 白坯原材料采购单 + */ + public BpProcureOrder selectBpProcureOrderByID(String ID); + + /** + * 查询白坯原材料采购单列表 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 白坯原材料采购单集合 + */ + public List selectBpProcureOrderList(BpProcureOrder bpProcureOrder); + + /** + * 新增白坯原材料采购单 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 结果 + */ + public int insertBpProcureOrder(BpProcureOrder bpProcureOrder); + + /** + * 修改白坯原材料采购单 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 结果 + */ + public int updateBpProcureOrder(BpProcureOrder bpProcureOrder); + + /** + * 删除白坯原材料采购单 + * + * @param ID 白坯原材料采购单主键 + * @return 结果 + */ + public int deleteBpProcureOrderByID(String ID); + + /** + * 批量删除白坯原材料采购单 + * + * @param IDs 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBpProcureOrderByIDs(String[] IDs); +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java index bf39355d6..51614d473 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java @@ -90,21 +90,23 @@ public interface OdsProcureOrderMapper { */ public List selectOdsProcureOrderList1(OdsProcureOrder odsProcureOrder); - OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder); + public OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder); - List getIdCardByIdList(@Param("storageId")String storageId); + public List getIdCardByIdList(@Param("storageId")String storageId); - OdsProcureOrder selectOdsProcureOrderCardTL(OdsProcureOrder odsProcureOrder); + public OdsProcureOrder selectOdsProcureOrderCardTL(OdsProcureOrder odsProcureOrder); - OdsProcureOrder selectWMSOdsProcureReturnOrderByID(String id); + public OdsProcureOrder selectWMSOdsProcureReturnOrderByID(String id); - List getIdCardListTH(OdsProcureOrder order); + public List getIdCardListTH(OdsProcureOrder order); - void deleteBatchPallet(@Param("list")List dtos0); + public void deleteBatchPallet(@Param("list")List dtos0); - List getIdCardListByU1(OdsProcureOrder order); + public List getIdCardListByU1(OdsProcureOrder order); - String selectOdsProcureOrderUserDefined7New(@Param("formattedTEM")String formattedDate); + public String selectOdsProcureOrderUserDefined7New(@Param("formattedTEM")String formattedDate); + + public List selectOdsProcureOrderListSH(OdsProcureOrder order2); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java index ec4b0b23b..ecfc8a14f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java @@ -149,4 +149,6 @@ public interface OdsProcureOutOrderMapper { void updateWMSOdsProcureReturnOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); List CKlist(OdsProcureOutOrder odsProcureOutOrder); + + void updateWMSOdsProcureOutOrdersapById(OdsProcureOutOrder order1); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBpProcureOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBpProcureOrderService.java new file mode 100644 index 000000000..845d2ffe4 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBpProcureOrderService.java @@ -0,0 +1,61 @@ +package com.op.wms.service; + +import java.util.List; +import com.op.wms.domain.BpProcureOrder; + +/** + * 白坯原材料采购单Service接口 + * + * @author ruoyi + * @date 2024-11-04 + */ +public interface IBpProcureOrderService +{ + /** + * 查询白坯原材料采购单 + * + * @param ID 白坯原材料采购单主键 + * @return 白坯原材料采购单 + */ + public BpProcureOrder selectBpProcureOrderByID(String ID); + + /** + * 查询白坯原材料采购单列表 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 白坯原材料采购单集合 + */ + public List selectBpProcureOrderList(BpProcureOrder bpProcureOrder); + + /** + * 新增白坯原材料采购单 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 结果 + */ + public int insertBpProcureOrder(BpProcureOrder bpProcureOrder); + + /** + * 修改白坯原材料采购单 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 结果 + */ + public int updateBpProcureOrder(BpProcureOrder bpProcureOrder); + + /** + * 批量删除白坯原材料采购单 + * + * @param IDs 需要删除的白坯原材料采购单主键集合 + * @return 结果 + */ + public int deleteBpProcureOrderByIDs(String[] IDs); + + /** + * 删除白坯原材料采购单信息 + * + * @param ID 白坯原材料采购单主键 + * @return 结果 + */ + public int deleteBpProcureOrderByID(String ID); +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBpRawMaterialInDetailService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBpRawMaterialInDetailService.java index a47cc37ec..f9b4cabb1 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBpRawMaterialInDetailService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBpRawMaterialInDetailService.java @@ -36,7 +36,7 @@ public interface IBpRawMaterialInDetailService * @param bpRawMaterialInDetail 白坯原材料入库明细 * @return 结果 */ - public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException; + public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail); /** * 修改白坯原材料入库明细 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java index 30418d049..f46155cd8 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java @@ -141,4 +141,6 @@ public interface IOdsProcureOrderService { String NewConMaterialOutSCNew(List orderList, List gzList); List CKlist(OdsProcureOutOrder odsProcureOutOrder); + + String ArrivalRegistrationSH(OdsProcureOrder odsProcureOrder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpProcureOrderServiceImpl.java new file mode 100644 index 000000000..e45e9bc71 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpProcureOrderServiceImpl.java @@ -0,0 +1,109 @@ +package com.op.wms.service.impl; + +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.wms.domain.BaseProduct; +import com.op.wms.mapper.BaseProductMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.wms.mapper.BpProcureOrderMapper; +import com.op.wms.domain.BpProcureOrder; +import com.op.wms.service.IBpProcureOrderService; + +/** + * 白坯原材料采购单Service业务层处理 + * + * @author ruoyi + * @date 2024-11-04 + */ +@Service +public class BpProcureOrderServiceImpl implements IBpProcureOrderService +{ + @Autowired + private BpProcureOrderMapper bpProcureOrderMapper; + @Autowired + private BaseProductMapper baseProductMapper; + + /** + * 查询白坯原材料采购单 + * + * @param ID 白坯原材料采购单主键 + * @return 白坯原材料采购单 + */ + @Override + @DS("#header.poolName") + public BpProcureOrder selectBpProcureOrderByID(String ID) + { + return bpProcureOrderMapper.selectBpProcureOrderByID(ID); + } + + /** + * 查询白坯原材料采购单列表 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 白坯原材料采购单 + */ + @Override + @DS("#header.poolName") + public List selectBpProcureOrderList(BpProcureOrder bpProcureOrder) + { + return bpProcureOrderMapper.selectBpProcureOrderList(bpProcureOrder); + } + + /** + * 新增白坯原材料采购单 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertBpProcureOrder(BpProcureOrder bpProcureOrder) + { + bpProcureOrder.setID(IdUtils.fastSimpleUUID()); + BaseProduct baseProduct = baseProductMapper.selectBaseProductByProductName(bpProcureOrder.getMaterialName()); + bpProcureOrder.setMaterialCode(baseProduct.getProductCode()); + return bpProcureOrderMapper.insertBpProcureOrder(bpProcureOrder); + } + + /** + * 修改白坯原材料采购单 + * + * @param bpProcureOrder 白坯原材料采购单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBpProcureOrder(BpProcureOrder bpProcureOrder) + { + return bpProcureOrderMapper.updateBpProcureOrder(bpProcureOrder); + } + + /** + * 批量删除白坯原材料采购单 + * + * @param IDs 需要删除的白坯原材料采购单主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBpProcureOrderByIDs(String[] IDs) + { + return bpProcureOrderMapper.deleteBpProcureOrderByIDs(IDs); + } + + /** + * 删除白坯原材料采购单信息 + * + * @param ID 白坯原材料采购单主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteBpProcureOrderByID(String ID) + { + return bpProcureOrderMapper.deleteBpProcureOrderByID(ID); + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpRawMaterialInDetailServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpRawMaterialInDetailServiceImpl.java index e01e41ca4..381cfe58f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpRawMaterialInDetailServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BpRawMaterialInDetailServiceImpl.java @@ -4,7 +4,6 @@ import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; -import com.microsoft.windowsazure.exception.ServiceException; import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; @@ -72,7 +71,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS */ @Override @DS("#header.poolName") - public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException { + public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail){ int reselt=1; //获取当前所选工厂 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); @@ -80,7 +79,6 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); if (bpRawMaterialInDetail.getMaterialName().isEmpty() || bpRawMaterialInDetail.getAmountReal()==null){ - throw new ServiceException("物料名称或数量不能为空"); }else { bpRawMaterialInDetail.setId(IdUtils.fastSimpleUUID()); bpRawMaterialInDetail.setFactoryCode(factoryCode); @@ -90,6 +88,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS bpRawMaterialInDetail.setUnit("吨"); bpRawMaterialInDetail.setCreateBy(SecurityContextHolder.getUserName()); bpRawMaterialInDetail.setGmtCreate(new Date()); + bpRawMaterialInDetail.setUserDefined1(bpRawMaterialInDetail.getUserDefined1());//采购单号 bpRawMaterialInDetailMapper.insertBpRawMaterialInDetail(bpRawMaterialInDetail); } //判断库存中物料是否存在 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 475778059..fd6e55936 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -1179,6 +1179,14 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } if(!CollectionUtils.isEmpty(dtos)){ + int tem= dtos.size(); + int ken=1; + for (OdsProcureOrder order1: + dtos) { + order1.setUserDefined9(tem+"-"+ken); + System.out.print(tem+"-"+ken); + ken++; + } odsProcureOrderMapper.addBatchPallet(dtos); } }else{ @@ -1225,14 +1233,29 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } if(!CollectionUtils.isEmpty(dtos)){ + int tem= dtos.size(); + int ken=1; + for (OdsProcureOrder order1: + dtos) { + order1.setUserDefined9(tem+"-"+ken); + System.out.print(tem+"-"+ken); + ken++; + } odsProcureOrderMapper.addBatchPallet(dtos); } } + + Date currentDate = new Date(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + String date = dateFormat.format(currentDate); for (OdsProcureOrder order1: dtos ) { String materialCode= order1.getMaterialCode();//000000040000004873 materialCode = materialCode.replaceFirst("^0{7}", ""); // 只替换开头的7个0 order1.setMaterialCode(materialCode); + order1.setUserDefined11(date); } String msg= dayin(dtos); return msg; @@ -1262,13 +1285,29 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { String dateString = order1.getUserDefined11().replace("-", ""); order1.setUserDefined1(order1.getProcureCode()+"-"+order1.getUserDefined3()+"-"+order1.getUserDefined8()+"-"+dateString+"-"+order1.getUserDefined4()+"-"+order1.getCardNum());//采购单+行项目+类型+日期+板次 order1.setUserDefined10("0"); + if ( order1.getUserDefined9()!=null){ + String userDefined9= order1.getUserDefined9(); + String[] userDefined9s= userDefined9.split("-"); + String firstValue = userDefined9s[0]; + String secondValueStr = userDefined9s[1]; // 获取第二个值的字符串 + int secondValue = Integer.parseInt(secondValueStr); // 转换为整数 + secondValue += 1; // 加1 + order1.setUserDefined9(firstValue+secondValue); + } + dtos.add(order1); odsProcureOrderMapper.addBatchPallet(dtos); + Date currentDate = new Date(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + String date = dateFormat.format(currentDate); for (OdsProcureOrder odsProcureOrder1: dtos ) { String materialCode= odsProcureOrder1.getMaterialCode();//000000040000004873 materialCode = materialCode.replaceFirst("^0{7}", ""); // 只替换开头的7个0 odsProcureOrder1.setMaterialCode(materialCode); + odsProcureOrder1.setUserDefined11(date); } String resylt= dayin(dtos); // resylt @@ -1757,7 +1796,9 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { //先根据出库单获取 // * 退料的移动类型为 262 // * 领料的移动类型为 261-- and wms_ods_procure_out_order.Order_Status='3' + //我把过账状态-- and wms_ods_procure_out_order.User_Defined10!='2'去掉了 List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList); + List orderList2 = new ArrayList<>();//非反冲 List> mapList = new ArrayList<>();//非反冲 List sapMaterialPostingFCList = new ArrayList<>();//反冲 @@ -1807,6 +1848,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { String userDefined9 = (String) map.get("MATERIALDOCUMENT"); order.setUserDefined9(userDefined9); order.setUserDefined10("2");//成功 + for (OdsProcureOutOrder order1: + orderList2 ) { + BigDecimal sapNumber= order1.getSapNumber(); + order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1); + } odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); for (OdsProcureOutOrder order1: orderList2) { @@ -1840,6 +1887,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { String userDefined9 = (String) map.get("MATERIALDOCUMENT"); order.setUserDefined9(userDefined9); order.setUserDefined10("2");//成功 + for (OdsProcureOutOrder order1: + orderList2FC ) { + BigDecimal sapNumber= order1.getSapNumber(); + order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1); + } odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); for (OdsProcureOutOrder order1: orderList2FC) { @@ -2273,6 +2326,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { }else{ dtos.addAll(dtos0); } + for (OdsProcureOrder order1: dtos ) { String materialCode= order1.getMaterialCode();//000000040000004873 @@ -2406,9 +2460,11 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public String NewConMaterialOutSCNew(List orderList, List gzList) { + //orderList标识卡这个要·注意重复过账,,gzList注意重复过账--就判断是否有对应标识卡未过账,如果未过账就进行过账 String result="操作成功"; String factoryCode = orderList.get(0).getFactoryCode(); DynamicDataSourceContextHolder.push("ds_" + factoryCode); + //我可以在这个循环里面 for (OdsProcureOutOrder odsProcureOutOrder : orderList) { //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号, @@ -2424,11 +2480,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { BigDecimal amount= odsProcureOutOrder.getAmount();//数量 String userDefined1= odsProcureOutOrder.getUserDefined1();//单位 String userDefined2= odsProcureOutOrder.getUserDefined2();//批次 + //包材明细表 WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId); //wms_raw_mission_out--保存 //ods_procure_out_order--修改 - WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); - wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode()); +// WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); +// wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode()); // WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); OdsProcureOutOrder order = new OdsProcureOutOrder(); order.setProduceCode(produceCode);//领料单 @@ -2446,32 +2503,34 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { order.setActive("1"); order.setCreateBy(createBy); order.setCreateDate(new Date()); - //order.setSiteCode(factoryCode); - OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder(); odsProcureOutOrder1.setProduceCode(produceCode); odsProcureOutOrder1.setMaterialCode(materialCode); List odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1); + //包材出库单----会有特殊的那种二次过账的单子--就看前端会不会传对应的标识卡了 OdsProcureOutOrder order1= odsProcureOutOrders.get(0); order.setUserDefined4(order1.getUserDefined4()); + //出库明细 odsProcureOutOrderMapper.insertWmsRawMissionOut(order); - + //BigDecimal sapNumber =order1.getSapNumber(); BigDecimal realityNumber1 = order1.getOutNumber();//累出库数 BigDecimal realityNumber = order1.getPlanNumber();//计划 BigDecimal planNumber = amount;//本次实际数量 BigDecimal tem = realityNumber1.add(planNumber); if (tem.compareTo(realityNumber)>= 0) { - order1.setOrderStatus("3"); + order1.setOrderStatus("3");//3是满足出库数量 } else { order1.setOrderStatus("2"); } - order1.setOutNumber(tem); - odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改 + order1.setOutNumber(tem);//这样的话,就可以用已经过账的数量来计算要过账的数量,用出库数量减去已经过账的数量,就是要过账的数量,只要不为0,就可以进行 + +// order1.setSapNumber(sapNumber.add(planNumber));//原本的过账数量 + odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改--会超 //明细 // BigDecimal temk= wmsOdsMateStorageNewsSn.getAmount().subtract(amount); wmsOdsMateStorageNewsSn.setOutNumber(amount); wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy); - wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细 + wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细--包材库存 WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 @@ -2486,6 +2545,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { OdsProcureOutOrder order=new OdsProcureOutOrder(); List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order); + //完成的。没有进行过账的 if (orderList1.size()>0){ OutboundPostingzcSAPGY(orderList1); } @@ -2506,6 +2566,49 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { return orderList; } + @Override + public String ArrivalRegistrationSH(OdsProcureOrder odsProcureOrder) { + String result="操作成功"; + DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); + OdsProcureOrder order2=new OdsProcureOrder(); + order2.setUserDefined5(odsProcureOrder.getUserDefined5()); + List orderList= odsProcureOrderMapper.selectOdsProcureOrderListSH(order2); + for ( OdsProcureOrder odsProcureOrder1 : + orderList) { + OdsProcureOrder order=new OdsProcureOrder(); + order.setProcureCode(odsProcureOrder1.getProcureCode()); + order.setActive("1"); + OdsProcureOrder order1= odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder1.getID()); + + //查询这次收货信息----生成质检任务------- //插入检验集计划 + QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO(); + qcCheckTaskIncomeDTO.setCheckLoc("mjtest"); + qcCheckTaskIncomeDTO.setCheckType("checkTypeLL"); + qcCheckTaskIncomeDTO.setSupplierCode(order1.getSupplierCode()); + String name = odsProcureOrderMapper.selectBaseSupplier(order1); + qcCheckTaskIncomeDTO.setSupplierName(name); + qcCheckTaskIncomeDTO.setOrderType("8040");//包材固定码 + qcCheckTaskIncomeDTO.setUnit(order1.getUnit()); + qcCheckTaskIncomeDTO.setFactoryCode(odsProcureOrder.getFactoryCode()); + qcCheckTaskIncomeDTO.setQuality(odsProcureOrder1.getPlanNumber());//操作数量 + qcCheckTaskIncomeDTO.setMaterialCode(order1.getMaterialCode()); + qcCheckTaskIncomeDTO.setMaterialName(order1.getMaterialDesc()); + // qcCheckTaskIncomeDTO.setIncomeBatchNo(order.getUserDefined2()); + qcCheckTaskIncomeDTO.setOrderNo(order1.getProcureCode()); + qcCheckTaskIncomeDTO.setIncomeTime(new Date()); + R ruslt= remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO); +// 成功后修改-- + if (ruslt.getCode()==200){//成功 + odsProcureOrder1.setCzNumber(odsProcureOrder1.getPlanNumber()); + odsProcureOrder1.setLastUpdateBy(odsProcureOrder.getLastUpdateBy()); + odsProcureOrderMapper.updateOdsProcureOrderAddOperationNumber(odsProcureOrder1); + }else { + result="操作失败:"+ruslt.getMsg(); + } + } + return result; + } + // @Override // public String addReturnSC(List orderList) { // String factoryCode = orderList.get(0).getFactoryCode(); @@ -2753,7 +2856,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { payload.put("warehousingDate", order.getUserDefined11()); payload.put("batch", order.getUserDefined7()); - + payload.put("bc", order.getUserDefined9()); payload.put("number", order.getPlanNumber()); payload.put("qrcode", order.getUserDefined1()); // 将当前订单的JSON对象添加到JSONArray中 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 af94faad2..e10cea4f8 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 @@ -652,6 +652,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { String result="入库成功"; //先判断这个订单是否存在//如果存在--就修改订单。-如果不存在就添加上, DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIn.getSiteCode()); + String userDefined1= wmsOdsWhiteEmbryoIn.getUserDefined1(); WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(wmsOdsWhiteEmbryoIn); if (wmsOdsWhiteEmbryoIn1==null){ //原来不存在 @@ -688,7 +689,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); wmsOdsEmStorageNewsSn.setSn(wmsWhiteBilletInfor.getSn()); - wmsOdsEmStorageNewsSn.setBarCode(wmsWhiteBilletInfor.getBatchCode()); + wmsOdsEmStorageNewsSn.setBarCode(userDefined1); wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); wmsOdsEmStorageNewsSn.setGmtCreate(new Date()); diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BpProcureOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BpProcureOrderMapper.xml new file mode 100644 index 000000000..91fdf9d5b --- /dev/null +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BpProcureOrderMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + select ID, procure_code, material_code, material_name, supply_name, plan_number, reality_number, unit, price, attr1, attr2, attr3, attr4, attr5 from bp_procure_order + + + + + + + + insert into bp_procure_order + + ID, + procure_code, + material_code, + material_name, + supply_name, + plan_number, + reality_number, + unit, + price, + attr1, + attr2, + attr3, + attr4, + attr5, + + + #{ID}, + #{procureCode}, + #{materialCode}, + #{materialName}, + #{supplyName}, + #{planNumber}, + #{realityNumber}, + #{unit}, + #{price}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{attr5}, + + + + + update bp_procure_order + + procure_code = #{procureCode}, + material_code = #{materialCode}, + material_name = #{materialName}, + supply_name = #{supplyName}, + plan_number = #{planNumber}, + reality_number = #{realityNumber}, + unit = #{unit}, + price = #{price}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + attr5 = #{attr5}, + + where ID = #{ID} + + + + delete from bp_procure_order where ID = #{ID} + + + + delete from bp_procure_order where ID in + + #{ID} + + + \ No newline at end of file diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml index 8892de814..8a948b020 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml @@ -563,6 +563,7 @@ card.User_Defined1 sn, card.Plan_Number , card.User_Defined10, + card.User_Defined9, card.User_Defined1, order_TME.User_Defined5 FROM @@ -803,5 +804,12 @@ WHERE LEFT(User_Defined7, 6) = #{formattedTEM} + + 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 ef451c8a8..b2b837f95 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 @@ -43,6 +43,7 @@ + limit #{page.pageOffset} , #{page.rows} @@ -451,7 +452,10 @@ update wms_ods_procure_out_order set User_Defined10 = #{order.userDefined10}, - User_Defined9 = #{order.userDefined9}, + User_Defined9 = CASE + WHEN User_Defined9 IS NULL OR User_Defined9 = '' THEN #{order.userDefined9} + ELSE CONCAT(User_Defined9, ',', #{order.userDefined9}) + END, User_Defined11 = #{order.userDefined11} where ID in @@ -805,7 +809,7 @@ wms_ods_procure_out_order.Plan_Date, wms_ods_procure_out_order.Plan_Number, wms_ods_procure_out_order.Unit, - COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) AS Out_Number, + COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) - COALESCE ( wms_ods_procure_out_order.Sap_Number, 0 ) AS Out_Number , wms_raw_mission_out.user_defined2 Loc_Code, wms_ods_procure_out_order.Loc_Desc, wms_ods_procure_out_order.Production_Line_Desc, @@ -830,6 +834,7 @@ wms_ods_procure_out_order.Last_Update_Date, wms_ods_procure_out_order.Active, wms_ods_procure_out_order.Enterprise_Id, + COALESCE ( wms_ods_procure_out_order.Sap_Number, 0 ) AS Sap_Number, wms_ods_procure_out_order.Enterprise_Code FROM wms_ods_procure_out_order @@ -839,7 +844,7 @@ #{odsProcureOutOrder.ID} - and wms_ods_procure_out_order.User_Defined10!='2' + AND (COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) - COALESCE ( wms_ods_procure_out_order.Sap_Number, 0 ))>0 + + update wms_ods_procure_out_order + set Sap_Number = #{order.sapNumber} + where ID = #{order.ID} +