diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java index 4a3108e..7376da0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java @@ -36,4 +36,9 @@ public class ToErpApiController { public void callbackTransferBill() { toErpService.callbackTransferBill(); } + + @Scheduled(fixedDelay = 30000) + public void callbackProduction() { + toErpService.callbackProduction(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java index aaf3ea0..e892565 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java @@ -19,4 +19,6 @@ public interface IToErpService { AjaxResult createWorkshopInboundOrder(BasProduct basProduct,String erpBill); AjaxResult getInCode(BasProductCode basProductCode); + + void callbackProduction(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java index 8ffab0e..e1c0577 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java @@ -9,7 +9,9 @@ import com.ruoyi.bas.BasProduct.service.IBasProductService; import com.ruoyi.bas.BasProductCode.domain.BasProductCode; import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.in.erp.domain.ProductionCallback; import com.ruoyi.in.erp.domain.TransferBillCallback; +import com.ruoyi.in.erp.service.IProductionCallbackService; import com.ruoyi.in.erp.service.ITransferBillCallbackService; import com.ruoyi.log.domain.RequestLog; import com.ruoyi.log.service.IRequestLogService; @@ -29,6 +31,8 @@ public class ToErpServiceImpl implements IToErpService { @Autowired private ITransferBillCallbackService transferBillCallbackService; @Autowired + private IProductionCallbackService productionCallbackService; + @Autowired private IBasJobIdService basJobIdService; @Autowired private IRequestLogService requestLogService; @@ -41,19 +45,88 @@ public class ToErpServiceImpl implements IToErpService { public void callbackTransferBill() { TransferBillCallback param = new TransferBillCallback(); param.setStatus("0"); - //List list = transferBillCallbackService.selectTransferBillCallbackList(param); List list = transferBillCallbackService.getTopMsg(param); - for (TransferBillCallback transferBillCallback : list) { + if(list.size()>0){ + TransferBillCallback callback = list.get(0); //todo 请求其他出入库单回传接口 - AjaxResult otherInOutboundOrder = createOtherInOutboundOrder(transferBillCallback); + AjaxResult otherInOutboundOrder = createOtherInOutboundOrder(callback); if (otherInOutboundOrder.isSuccess()) { - transferBillCallback.setStatus("1"); - transferBillCallback.setFinishTime(DateUtil.formatDateTime(new Date())); - transferBillCallbackService.updateTransferBillCallback(transferBillCallback); + callback.setStatus("1"); + callback.setFinishTime(DateUtil.formatDateTime(new Date())); + transferBillCallbackService.updateTransferBillCallback(callback); + }else{ + callback.setStatus("2"); + callback.setFinishTime(DateUtil.formatDateTime(new Date())); + transferBillCallbackService.updateTransferBillCallback(callback); } } } + @Override + public void callbackProduction() { + List list = productionCallbackService.getTopMsg("0"); + if(list.size()>0){ + ProductionCallback productionCallback = list.get(0); + + AjaxResult ajaxResult = createProductionCallback(productionCallback); + if (ajaxResult.isSuccess()) { + productionCallback.setStatus("1"); + productionCallback.setReturnCode("0"); + productionCallback.setReturnMsg(ajaxResult.get("msg").toString()); + productionCallbackService.updateProductionCallback(productionCallback); + }else{ + productionCallback.setStatus("2"); + productionCallback.setReturnCode("1"); + productionCallback.setReturnMsg(ajaxResult.get("msg").toString()); + productionCallbackService.updateProductionCallback(productionCallback); + } + } + } + + private AjaxResult createProductionCallback(ProductionCallback productionCallback) { + ErpInterfaceParam param = new ErpInterfaceParam<>(); + ErpStdData erpStdData = new ErpStdData<>(); + ErpParameter objectErpParameter = new ErpParameter<>(); + ArrayList list = new ArrayList(); + WipTransferDoc wipTransferDoc = new WipTransferDoc(); + wipTransferDoc.setDOC_NO(basJobIdService.getJobIdBy("5C41")); + wipTransferDoc.setDOC_ID_DOC_CODE("5C41"); + wipTransferDoc.setDOC_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDoc.setSOURCE_ID_WORK_CENTER_WORK_CENTER_CODE("QC06"); + wipTransferDoc.setFROM_ADMIN_UNIT_ID_ADMIN_UNIT_CODE("EF08G"); + wipTransferDoc.setFROM_ADMIN_UNIT_ID_START_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDoc.setOwner_Dept_ADMIN_UNIT_CODE("EF08G"); + wipTransferDoc.setOwner_Dept_START_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDoc.setOwner_Emp_EMPLOYEE_CODE("EF08G"); + + String docNo = requestLogService.getRequestLogDoc(TO_ERP_URL,productionCallback.getBillNo(), productionCallback.getProductId() , "获取工艺单号", "wms", "erp"); + if("".equals(docNo) || docNo == null) { + return AjaxResult.error(); + } + WipTransferDocD wipTransferDocD = new WipTransferDocD(); + wipTransferDocD.setMO_ID_DOC_NO(docNo); + wipTransferDocD.setTO_ADMIN_UNIT_ID_START_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDocD.setQTY("1"); + wipTransferDocD.setITEM_ID_ITEM_CODE(productionCallback.getProductId()); + wipTransferDocD.setITEM_NAME(productionCallback.getProductName()); + wipTransferDocD.setITEM_SPECIFICATION(productionCallback.getSpec()); + wipTransferDocD.setSOURCE_ID_WAREHOUSE_WAREHOUSE_CODE("C041-1"); + wipTransferDocD.setFROM_MO_ROUTING_D_ID_SequenceNumber(1); + wipTransferDocD.setFROM_MO_ROUTING_D_ID_Parent_MO_ID_DOC_NO(docNo); + list.add(wipTransferDocD); + wipTransferDoc.setWIP_TRANSFER_DOC_D(list); + objectErpParameter.setDatas(List.of(wipTransferDoc)); + erpStdData.setParameter(objectErpParameter); + param.setStd_data(erpStdData); + RequestLog requestLog = requestLogService.getRequestLogGd(TO_ERP_URL, JSONUtil.toJsonStr(param), "创建工艺单","wms","erp"); + if(requestLog != null && "1".equals(requestLog.getIsSuccessful())){ + return AjaxResult.success(requestLog.getResponseBody()); + }else{ + return AjaxResult.error(requestLog.getResponseBody()); + } + } + + @Override public AjaxResult createWorkshopInboundOrder(BasProduct basProduct,String erpBill) { ErpInterfaceParam param = new ErpInterfaceParam<>(); @@ -111,6 +184,8 @@ public class ToErpServiceImpl implements IToErpService { } + + public AjaxResult createOtherInOutboundOrder(TransferBillCallback transferBillCallback) { ErpInterfaceParam param = new ErpInterfaceParam<>(); ErpStdData erpStdData = new ErpStdData<>(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java index 5e4265f..08e0f43 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java @@ -190,7 +190,7 @@ public class ToWmsServiceImpl implements IToWmsService { } //todo 创建工艺入库单 - //注释该部分用于处理异常报工无法正常入库的工单任务 + //注释该部分,优化为先入库后报工,堆垛机完成插入数据 // if ("2".equals(requestEnter.getFloor())){ // AjaxResult workshopInboundOrder = toErpService.createWorkshopInboundOrder(basProduct,erpBill); // if (!workshopInboundOrder.isSuccess()){ @@ -341,7 +341,6 @@ public class ToWmsServiceImpl implements IToWmsService { StringBuilder stringBuilder = new StringBuilder(); switch (wmsJobRequest.getWmsType()) { case "1": - if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) { return AjaxResult.error("任务号不能为空"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/ProductionCallbackController.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/ProductionCallbackController.java new file mode 100644 index 0000000..f3cc5e6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/ProductionCallbackController.java @@ -0,0 +1,93 @@ +package com.ruoyi.in.erp.controller; + +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; +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; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.in.erp.domain.ProductionCallback; +import com.ruoyi.in.erp.service.IProductionCallbackService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * ProductionCallbackController + * + * @author ruoyi + * @date 2026-01-27 + */ +@RestController +@RequestMapping("/erp/productionCallback") +public class ProductionCallbackController extends BaseController +{ + @Autowired + private IProductionCallbackService productionCallbackService; + + /** + * 查询ProductionCallback列表 + */ +// @PreAuthorize("@ss.hasPermi('ProductionCallback:ProductionCallback:list')") + @GetMapping("/list") + public TableDataInfo list(ProductionCallback productionCallback) + { + startPage(); + List list = productionCallbackService.selectProductionCallbackList(productionCallback); + return getDataTable(list); + } + + /** + * 导出ProductionCallback列表 + */ +// @PreAuthorize("@ss.hasPermi('ProductionCallback:ProductionCallback:export')") + @Log(title = "ProductionCallback", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProductionCallback productionCallback) + { + List list = productionCallbackService.selectProductionCallbackList(productionCallback); + ExcelUtil util = new ExcelUtil(ProductionCallback.class); + util.exportExcel(response, list, "ProductionCallback数据"); + } + + /** + * 获取ProductionCallback详细信息 + */ +// @PreAuthorize("@ss.hasPermi('ProductionCallback:ProductionCallback:query')") + @GetMapping(value = "/{trayCode}") + public AjaxResult getInfo(@PathVariable("trayCode") String trayCode) + { + return success(productionCallbackService.selectProductionCallbackByTrayCode(trayCode)); + } + + /** + * 修改ProductionCallback + */ +// @PreAuthorize("@ss.hasPermi('ProductionCallback:ProductionCallback:edit')") + @Log(title = "ProductionCallback", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProductionCallback productionCallback) + { + return toAjax(productionCallbackService.updateProductionCallbackMsg(productionCallback)); + } + + /** + * 删除ProductionCallback + */ +// @PreAuthorize("@ss.hasPermi('ProductionCallback:ProductionCallback:remove')") + @Log(title = "ProductionCallback", businessType = BusinessType.DELETE) + @DeleteMapping("/{trayCodes}") + public AjaxResult remove(@PathVariable String[] trayCodes) + { + return toAjax(productionCallbackService.deleteProductionCallbackByTrayCodes(trayCodes)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/TransferBillCallbackController.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/TransferBillCallbackController.java index 2c242cb..07fdd93 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/TransferBillCallbackController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/controller/TransferBillCallbackController.java @@ -38,7 +38,7 @@ public class TransferBillCallbackController extends BaseController /** * 查询调拨单回传列表 */ - @PreAuthorize("@ss.hasPermi('in:transfer:list')") +// @PreAuthorize("@ss.hasPermi('in:transfer:list')") @GetMapping("/list") public TableDataInfo list(TransferBillCallback transferBillCallback) { @@ -50,7 +50,7 @@ public class TransferBillCallbackController extends BaseController /** * 导出调拨单回传列表 */ - @PreAuthorize("@ss.hasPermi('in:transfer:export')") +// @PreAuthorize("@ss.hasPermi('in:transfer:export')") @Log(title = "调拨单回传", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, TransferBillCallback transferBillCallback) @@ -63,7 +63,7 @@ public class TransferBillCallbackController extends BaseController /** * 获取调拨单回传详细信息 */ - @PreAuthorize("@ss.hasPermi('in:transfer:query')") +// @PreAuthorize("@ss.hasPermi('in:transfer:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -73,7 +73,7 @@ public class TransferBillCallbackController extends BaseController /** * 新增调拨单回传 */ - @PreAuthorize("@ss.hasPermi('in:transfer:add')") +// @PreAuthorize("@ss.hasPermi('in:transfer:add')") @Log(title = "调拨单回传", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody TransferBillCallback transferBillCallback) @@ -84,7 +84,7 @@ public class TransferBillCallbackController extends BaseController /** * 修改调拨单回传 */ - @PreAuthorize("@ss.hasPermi('in:transfer:edit')") +// @PreAuthorize("@ss.hasPermi('in:transfer:edit')") @Log(title = "调拨单回传", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody TransferBillCallback transferBillCallback) @@ -95,7 +95,7 @@ public class TransferBillCallbackController extends BaseController /** * 删除调拨单回传 */ - @PreAuthorize("@ss.hasPermi('in:transfer:remove')") +// @PreAuthorize("@ss.hasPermi('in:transfer:remove')") @Log(title = "调拨单回传", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/ProductionCallback.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/ProductionCallback.java new file mode 100644 index 0000000..cf69f43 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/ProductionCallback.java @@ -0,0 +1,94 @@ +package com.ruoyi.in.erp.domain; + +public class ProductionCallback { + private String trayCode; + private String billNo; + private String productId; + private String productName; + private String spec; + private String unit; + private String status; + private String createTime; + private String returnCode; + private String returnMsg; + + public String getTrayCode() { + return trayCode; + } + + public void setTrayCode(String trayCode) { + this.trayCode = trayCode; + } + + public String getBillNo() { + return billNo; + } + + public void setBillNo(String billNo) { + this.billNo = billNo; + } + + public String getProductId() { + return productId; + } + + public void setProductId(String productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getReturnCode() { + return returnCode; + } + + public void setReturnCode(String returnCode) { + this.returnCode = returnCode; + } + + public String getReturnMsg() { + return returnMsg; + } + + public void setReturnMsg(String returnMsg) { + this.returnMsg = returnMsg; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/mapper/ProductionCallbackMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/mapper/ProductionCallbackMapper.java new file mode 100644 index 0000000..d7e1ba1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/mapper/ProductionCallbackMapper.java @@ -0,0 +1,56 @@ +package com.ruoyi.in.erp.mapper; + +import com.ruoyi.in.erp.domain.ProductionCallback; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 工艺入库回传Mapper接口 + * + * @author ruoyi + * @date 2025-09-17 + */ +public interface ProductionCallbackMapper +{ + + List getTopMsg(@Param("status") String status); + + void updateProductionCallback(ProductionCallback productionCallback); + + void insertProductionCallback(ProductionCallback productionCallback); + + /** + * 查询ProductionCallback + * + * @param trayCode ProductionCallback主键 + * @return ProductionCallback + */ + public ProductionCallback selectProductionCallbackByTrayCode(String trayCode); + + /** + * 查询ProductionCallback列表 + * + * @param productionCallback ProductionCallback + * @return ProductionCallback集合 + */ + public List selectProductionCallbackList(ProductionCallback productionCallback); + + /** + * 删除ProductionCallback + * + * @param trayCode ProductionCallback主键 + * @return 结果 + */ + public int deleteProductionCallbackByTrayCode(String trayCode); + + /** + * 批量删除ProductionCallback + * + * @param trayCodes 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProductionCallbackByTrayCodes(String[] trayCodes); + + int updateProductionCallbackMsg(ProductionCallback productionCallback); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/service/IProductionCallbackService.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/service/IProductionCallbackService.java new file mode 100644 index 0000000..f2259d0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/service/IProductionCallbackService.java @@ -0,0 +1,54 @@ +package com.ruoyi.in.erp.service; + +import com.ruoyi.in.erp.domain.ProductionCallback; + +import java.util.List; + +/** + * 工艺入库回传Service接口 + * + * @author ruoyi + * @date 2025-09-17 + */ +public interface IProductionCallbackService { + + List getTopMsg(String status); + + void updateProductionCallback(ProductionCallback productionCallback); + + void insertProductionCallback(ProductionCallback productionCallback); + + /** + * 查询ProductionCallback + * + * @param trayCode ProductionCallback主键 + * @return ProductionCallback + */ + public ProductionCallback selectProductionCallbackByTrayCode(String trayCode); + + /** + * 查询ProductionCallback列表 + * + * @param productionCallback ProductionCallback + * @return ProductionCallback集合 + */ + public List selectProductionCallbackList(ProductionCallback productionCallback); + + /** + * 批量删除ProductionCallback + * + * @param trayCodes 需要删除的ProductionCallback主键集合 + * @return 结果 + */ + public int deleteProductionCallbackByTrayCodes(String[] trayCodes); + + /** + * 删除ProductionCallback信息 + * + * @param trayCode ProductionCallback主键 + * @return 结果 + */ + public int deleteProductionCallbackByTrayCode(String trayCode); + + int updateProductionCallbackMsg(ProductionCallback productionCallback); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/service/impl/ProductionCallbackServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/service/impl/ProductionCallbackServiceImpl.java new file mode 100644 index 0000000..c5ea200 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/service/impl/ProductionCallbackServiceImpl.java @@ -0,0 +1,92 @@ +package com.ruoyi.in.erp.service.impl; + + +import com.ruoyi.in.erp.domain.ProductionCallback; +import com.ruoyi.in.erp.mapper.ProductionCallbackMapper; +import com.ruoyi.in.erp.service.IProductionCallbackService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 工艺入库回传Service业务层处理 + * + * @author ruoyi + * @date 2025-09-17 + */ +@Service +public class ProductionCallbackServiceImpl implements IProductionCallbackService { + + @Autowired + private ProductionCallbackMapper productionCallbackMapper; + + @Override + public List getTopMsg(String status) { + return productionCallbackMapper.getTopMsg(status); + } + + @Override + public void updateProductionCallback(ProductionCallback productionCallback) { + productionCallbackMapper.updateProductionCallback(productionCallback); + } + + @Override + public void insertProductionCallback(ProductionCallback productionCallback) { + productionCallbackMapper.insertProductionCallback(productionCallback); + } + + /** + * 查询ProductionCallback + * + * @param trayCode ProductionCallback主键 + * @return ProductionCallback + */ + @Override + public ProductionCallback selectProductionCallbackByTrayCode(String trayCode) + { + return productionCallbackMapper.selectProductionCallbackByTrayCode(trayCode); + } + + /** + * 查询ProductionCallback列表 + * + * @param productionCallback ProductionCallback + * @return ProductionCallback + */ + @Override + public List selectProductionCallbackList(ProductionCallback productionCallback) + { + return productionCallbackMapper.selectProductionCallbackList(productionCallback); + } + + /** + * 批量删除ProductionCallback + * + * @param trayCodes 需要删除的ProductionCallback主键 + * @return 结果 + */ + @Override + public int deleteProductionCallbackByTrayCodes(String[] trayCodes) + { + return productionCallbackMapper.deleteProductionCallbackByTrayCodes(trayCodes); + } + + /** + * 删除ProductionCallback信息 + * + * @param trayCode ProductionCallback主键 + * @return 结果 + */ + @Override + public int deleteProductionCallbackByTrayCode(String trayCode) + { + return productionCallbackMapper.deleteProductionCallbackByTrayCode(trayCode); + } + + @Override + public int updateProductionCallbackMsg(ProductionCallback productionCallback) { + return productionCallbackMapper.updateProductionCallbackMsg(productionCallback); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java index 377f5d5..0f9f4eb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java @@ -19,7 +19,9 @@ import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.in.erp.domain.ProductionCallback; import com.ruoyi.in.erp.domain.TransferBillCallback; +import com.ruoyi.in.erp.service.IProductionCallbackService; import com.ruoyi.in.erp.service.ITransferBillCallbackService; import com.ruoyi.in.stockindetail.domain.InStockinDetail; import com.ruoyi.in.stockindetail.service.IInStockinDetailService; @@ -84,6 +86,8 @@ public class MydoJobServiceImpl implements IMydoJobService { @Autowired private ITransferBillCallbackService transferBillCallbackService; @Autowired + private IProductionCallbackService productionCallbackService; + @Autowired private BasStockMapper basStockMapper; @Autowired private BasProductMapper basProductMapper; @@ -269,7 +273,6 @@ public class MydoJobServiceImpl implements IMydoJobService { return AjaxResult.warn("任务不存在"); } if ("5".equals(mydoJob.getInOrOut())){ - //盘点入库 //入库作业 MydoJobDetail param = new MydoJobDetail(); @@ -302,15 +305,12 @@ public class MydoJobServiceImpl implements IMydoJobService { //正常库存 list.add(stockByInStockinDetail); } - } - //修改货位状态 basCargoSpace.setStatus("2"); basCargoSpace.setTrayCode(mydoJob.getTrayCode()); basCargoSpace.setCargoSpaceId(mydoJob.getCargoSpaceId()); basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - //插入库存信息 basStockService.insertBasStockList(list); @@ -320,6 +320,19 @@ public class MydoJobServiceImpl implements IMydoJobService { updateMydoJob(mydoJob); // 插入任务历史表 删除任务 insertHistory(mydoJob.getJobId()); + TransferBillCallback transferBillCallback = new TransferBillCallback(); + transferBillCallback.setJobId(mydoJob.getJobId()); + transferBillCallback.setErpBill(mydoJob.getLineId()); + transferBillCallback.setType("1"); + transferBillCallback.setStatus("0"); + BasProduct product = basProductMapper.selectBasProductByProductId(mydoJobDetails.get(0).getProductId()); + transferBillCallback.setSpare1(mydoJobDetails.get(0).getProductId()); + if(product != null) { + transferBillCallback.setSpare2(product.getProductName()); + } + transferBillCallback.setSpare3(mydoJobDetails.get(0).getSpec()); + transferBillCallback.setTrayCode(mydoJob.getTrayCode()); + transferBillCallbackService.insertTransferBillCallback(transferBillCallback); return AjaxResult.success(); } else { return AjaxResult.warn("不存在子作业"); @@ -332,8 +345,12 @@ public class MydoJobServiceImpl implements IMydoJobService { BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); if (CollUtil.isNotEmpty(mydoJobDetails)) { List list = new ArrayList<>(); + BasProduct basProduct = basProductMapper.selectBasProductByProductId(mydoJobDetails.get(0).getProductId()); for (MydoJobDetail mydoJobDetail : mydoJobDetails) { //正常库存 + if(basProduct != null) { + mydoJobDetail.setProductName(basProduct.getProductName()); + } BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, mydoJob, "1"); stockByInStockinDetail.setSpare7("0"); list.add(stockByInStockinDetail); @@ -354,6 +371,22 @@ public class MydoJobServiceImpl implements IMydoJobService { updateMydoJob(mydoJob); // 插入任务历史表 删除任务 insertHistory(mydoJob.getJobId()); + //报工数据插入 + if("G1005".equals(mydoJob.getEntranceId())){ + ProductionCallback productionCallback = new ProductionCallback(); + productionCallback.setTrayCode(mydoJob.getTrayCode()); + productionCallback.setBillNo(mydoJob.getLineId()); + productionCallback.setProductId(mydoJobDetails.get(0).getProductId()); + if(basProduct != null) { + productionCallback.setProductName(basProduct.getProductName()); + } + productionCallback.setSpec(mydoJobDetails.get(0).getSpec()); + productionCallback.setUnit(basProduct.getUnit()); + productionCallback.setStatus("0"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + productionCallback.setCreateTime(sdf.format(new Date())); + productionCallbackService.insertProductionCallback(productionCallback); + } //其他出入库单据回传 TransferBillCallback transferBillCallback = new TransferBillCallback(); diff --git a/ruoyi-admin/src/main/resources/mapper/in/ProductionCallbackMapper.xml b/ruoyi-admin/src/main/resources/mapper/in/ProductionCallbackMapper.xml new file mode 100644 index 0000000..c6e6847 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/in/ProductionCallbackMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + select tray_code, bill_no, product_id, product_name, spec, unit, status, create_time, return_code, return_msg from production_callback + + + + + + + + update production_callback + + bill_no = #{billNo}, + product_id = #{productId}, + product_name = #{productName}, + spec = #{spec}, + unit = #{unit}, + status = #{status}, + create_time = #{createTime}, + return_code = #{returnCode}, + return_msg = #{returnMsg}, + + where tray_code = #{trayCode} + + + + delete from production_callback where tray_code = #{trayCode} + + + + delete from production_callback where tray_code in + + #{trayCode} + + + + + + + update production_callback set status=#{status},return_code=#{returnCode},return_msg=#{returnMsg} + where tray_code = #{trayCode} and bill_no = #{billNo} + + + + insert into production_callback + + tray_code, + bill_no, + product_id, + product_name, + spec, + unit, + status, + create_time, + return_code, + return_msg, + + + #{trayCode}, + #{billNo}, + #{productId}, + #{productName}, + #{spec}, + #{unit}, + #{status}, + #{createTime}, + #{returnCode}, + #{returnMsg}, + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/in/TransferBillCallbackMapper.xml b/ruoyi-admin/src/main/resources/mapper/in/TransferBillCallbackMapper.xml index abb8ea9..36dd83d 100644 --- a/ruoyi-admin/src/main/resources/mapper/in/TransferBillCallbackMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/in/TransferBillCallbackMapper.xml @@ -27,11 +27,11 @@ and job_id = #{jobId} - and erp_bill = #{erpBill} + and erp_bill like concat('%',#{erpBill},'%') and type = #{type} and status = #{status} and finish_time = #{finishTime} - and spare1 = #{spare1} + and spare1 like concat('%',#{spare1},'%') and spare2 = #{spare2} and spare3 = #{spare3} diff --git a/ruoyi-ui/src/api/ProductionCallback/ProductionCallback.js b/ruoyi-ui/src/api/ProductionCallback/ProductionCallback.js new file mode 100644 index 0000000..2d16819 --- /dev/null +++ b/ruoyi-ui/src/api/ProductionCallback/ProductionCallback.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询ProductionCallback列表 +export function listProductionCallback(query) { + return request({ + url: '/erp/productionCallback/list', + method: 'get', + params: query + }) +} + +// 查询ProductionCallback详细 +export function getProductionCallback(trayCode) { + return request({ + url: '/erp/productionCallback/' + trayCode, + method: 'get' + }) +} + +// 新增ProductionCallback +// export function addProductionCallback(data) { +// return request({ +// url: '/erp/productionCallback', +// method: 'post', +// data: data +// }) +// } + +// 修改ProductionCallback +export function updateProductionCallback(data) { + return request({ + url: '/erp/productionCallback', + method: 'put', + data: data + }) +} + +// 删除ProductionCallback +export function delProductionCallback(trayCode) { + return request({ + url: '/erp/productionCallback/' + trayCode, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/in/transfer.js b/ruoyi-ui/src/api/in/transfer.js new file mode 100644 index 0000000..5dabcf4 --- /dev/null +++ b/ruoyi-ui/src/api/in/transfer.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询调拨单回传列表 +export function listTransfer(query) { + return request({ + url: '/in/transfer/list', + method: 'get', + params: query + }) +} + +// 查询调拨单回传详细 +export function getTransfer(id) { + return request({ + url: '/in/transfer/' + id, + method: 'get' + }) +} + +// 新增调拨单回传 +export function addTransfer(data) { + return request({ + url: '/in/transfer', + method: 'post', + data: data + }) +} + +// 修改调拨单回传 +export function updateTransfer(data) { + return request({ + url: '/in/transfer', + method: 'put', + data: data + }) +} + +// 删除调拨单回传 +export function delTransfer(id) { + return request({ + url: '/in/transfer/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/ProductionCallback/index.vue b/ruoyi-ui/src/views/ProductionCallback/index.vue new file mode 100644 index 0000000..29eac02 --- /dev/null +++ b/ruoyi-ui/src/views/ProductionCallback/index.vue @@ -0,0 +1,314 @@ + + + diff --git a/ruoyi-ui/src/views/transfer/index.vue b/ruoyi-ui/src/views/transfer/index.vue new file mode 100644 index 0000000..32e9ccb --- /dev/null +++ b/ruoyi-ui/src/views/transfer/index.vue @@ -0,0 +1,338 @@ + + +