diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java index 41b73cf2..68672aa8 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java @@ -261,16 +261,25 @@ public class ChanjetController { @PreAuthorize("@ss.hasPermission('biz:storage:create')") @Scheduled(cron = "0 0 3 * * ?") public void synchronizeData() throws ChanjetApiException{ - chanjetManager.queryMaterial(); - //查询库存-现存量 - chanjetSchedule.queryStock(); +// chanjetManager.queryMaterial(); +// //查询库存-现存量 +// chanjetSchedule.queryStock(); // //创建入库 // chanjetSchedule.createStorageInOrder(); - } + chanjetManager.createProductionOrder(232L); + } + @PermitAll + @TenantIgnore + @GetMapping("/sendData2TPlus") + @Operation(summary = "定时更新") + @PreAuthorize("@ss.hasPermission('biz:storage:create')") @Scheduled(cron = "0 0 2 * * ?") public void synchronizeData2() throws ChanjetApiException{ //查询库存-现存量 // chanjetSchedule.createStorageOut(); + + + chanjetManager.createProductionOrder(232L); } } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetInterfaceEnum.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetInterfaceEnum.java index 1e0d15ab..cbd22fe9 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetInterfaceEnum.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetInterfaceEnum.java @@ -31,10 +31,13 @@ public enum ChanjetInterfaceEnum { CREATE_STOCK_OUT_ORDER("/tplus/api/v2/materialDispatch/Create", "创建出库单", CreateStockOutOrderReqVO.class, ResultResVO.class), CREATE_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Create", "创建生产加工单", CreateProductionOrderReqVO.class, ResultResVO.class), + UPDATE_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Update", "创建生产加工单", CreateProductionOrderReqVO.class, ResultResVO.class), AUDIT_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Audit", "审核生产加工单", AuditProductionOrderReqVO.class, ResultResVO.class), + UN_AUDIT_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/UnAudit", "弃审生产加工单", AuditProductionOrderReqVO.class, ResultResVO.class), QUERY_PRODUCTION_ORDER_LIST("/tplus/api/v2/ManufactureOrderOpenApi/FindVoucherList", "查询生产加工单", ListProductionOrderReqVO.class, ListResultResVO.class), CREATE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Create", "创建工序汇报单", CreateReportReqVO.class, ResultResVO.class), + UPDATE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Update", "修改工序汇报单", CreateReportReqVO.class, ResultResVO.class), AUDIT_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Audit", "审核工序汇报单", CreateReportReqVO.class, ResultResVO.class), DELETE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Delete", "删除工序汇报单", DeleteReportReqVO.class, ResultResVO.class), ; diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/CreateProductionOrderDto.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/CreateProductionOrderDto.java index 7c09176f..7aad3fe5 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/CreateProductionOrderDto.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/CreateProductionOrderDto.java @@ -33,6 +33,7 @@ public class CreateProductionOrderDto { private List ManufactureOrderDetails; private String Memo; private String ExternalCode; - private Integer IsStartDispatching; + private Boolean IsStartDispatching; + private String Ts; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderDO.java index 0b38e733..fd0449de 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderDO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderDO.java @@ -200,6 +200,11 @@ public class ProjectOrderDO extends BaseDO { private Integer packageStatus; + /** + * 用友时间戳 + */ + private String ts; + /** * 快照原始单据日期 */ diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java index 1483070e..5ede1750 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java @@ -1451,14 +1451,28 @@ public class ChanjetManager { CreateProductionOrderDto dto = new CreateProductionOrderDto(); ArrayList detailList = new ArrayList<>(16); - String externalCode = aDo.getCode()+"-"+subDOList.stream().sorted(Comparator.comparing(ProjectOrderSubDO::getId)).map(subDO -> String.valueOf(subDO.getId())).collect(Collectors.joining("-")); +// String externalCode = aDo.getCode()+"-"+subDOList.stream().sorted(Comparator.comparing(ProjectOrderSubDO::getId)).map(subDO -> String.valueOf(subDO.getId())).collect(Collectors.joining("-")); + String externalCode = aDo.getCode()+"-"+aDo.getId().toString(); dto.setExternalCode(externalCode) + .setCode(aDo.getCode()) // 任意车间 .setDepartment(new Department(workshopDO.getCode())) .setVoucherDate(dateFormat) - .setIsStartDispatching(0)//禁用派工 + .setIsStartDispatching(false)//禁用派工 .setManufactureOrderDetails(detailList); + +// ManufactureOrderDetails detail = new ManufactureOrderDetails(); +// DictDataDO dictDataDO = dictDataMapper.selectByDictTypeAndValue(DictTypeConstants.MATERIAL_UNIT.getCode(), subDOList.get(0).getUnit()); +// +// detail.setInventory(new Inventory(subDOList.get(0).getProjectSubCode())) +// .setUnit(new Unit(dictDataDO.getLabel())) +// .setQuantity(subDOList.get(0).getAmount()) +// .setPreStartDate(aDo.getProjectStartTime().format(DateTimeFormatter.ISO_DATE)) +// .setPreFinishDate(aDo.getProjectEndTime().format(DateTimeFormatter.ISO_DATE)) +// ; +// detailList.add(detail); + subDOList.forEach(subDO -> { ManufactureOrderDetails detail = new ManufactureOrderDetails(); DictDataDO dictDataDO = dictDataMapper.selectByDictTypeAndValue(DictTypeConstants.MATERIAL_UNIT.getCode(), subDO.getUnit()); @@ -1473,7 +1487,21 @@ public class ChanjetManager { }); // 设置为“是”,打开所有与用友通信的接口 if(getSystemParameters()) { - CommonResult result = chanjetSpi.invoke(CREATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); + CommonResult result = null; + if(aDo.getTs()==null || aDo.getTs().isEmpty()){ + result = chanjetSpi.invoke(CREATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); + }else{ + + //生产加工单修改前要先弃审 + CommonResult result3 = chanjetSpi.invoke(UN_AUDIT_PRODUCTION_ORDER, new QuerySaleOrderReqVO(new QuerySaleOrderReqVO.SaleOrderParamVO(aDo.getCode())), ResultResVO.class); + if (!result3.isSuccess() || !result3.getData().isSuccess()) { + throw new RuntimeException(result3.getMsg()); + } + + dto.setTs(aDo.getTs()); + result = chanjetSpi.invoke(UPDATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); + } +// CommonResult result = chanjetSpi.invoke(UPDATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); if (!result.isSuccess() || !result.getData().isSuccess()) { throw exception(CALL_API_ERROR); } @@ -1486,6 +1514,9 @@ public class ChanjetManager { Map rMap = JSON.parseObject(JSON.toJSONString(result.getData().getData()), new TypeReference>() {{ }}); + + aDo.setTs(rMap.get("Ts").toString()); + projectOrderMapper.updateById(aDo); // 查询报工单数据 将id回写至子项目表 Map> subGroupByProjectSubCode = subDOList.stream().collect(Collectors.groupingBy(ProjectOrderSubDO::getProjectSubCode)); CommonResult listResult = chanjetSpi.invoke(QUERY_PRODUCTION_ORDER_LIST, new ListProductionOrderReqVO(rMap.get("Code")), ListResultResVO.class); diff --git a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/dict/DictDataMapper.java b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/dict/DictDataMapper.java index beb2847b..3d3a1557 100644 --- a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/dict/DictDataMapper.java +++ b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/dict/DictDataMapper.java @@ -16,11 +16,18 @@ import java.util.List; public interface DictDataMapper extends BaseMapperX { default DictDataDO selectByDictTypeAndValue(String dictType, String value) { - return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getValue, value); + return selectOne(new LambdaQueryWrapper(){{ + eq(DictDataDO::getDictType,dictType); + eq(DictDataDO::getValue,value).last("LIMIT 1"); + }}); } default DictDataDO selectByDictTypeAndLabel(String dictType, String label) { - return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getLabel, label); +// return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getLabel, label); + return selectOne(new LambdaQueryWrapper(){{ + eq(DictDataDO::getDictType,dictType); + eq(DictDataDO::getLabel,label).last("LIMIT 1"); + }}); } default List selectByDictTypeAndValues(String dictType, Collection values) { diff --git a/sql/v1.0.0/2.business/1.structure.sql b/sql/v1.0.0/2.business/1.structure.sql index b7eb1f6e..11dffee0 100644 --- a/sql/v1.0.0/2.business/1.structure.sql +++ b/sql/v1.0.0/2.business/1.structure.sql @@ -669,3 +669,7 @@ CREATE TABLE `base_customer_feedback` ( alter table wms_storage_check_mat Modify COLUMN rg_id bigint(20) default null COMMENT '库区 Id,对应 wms_rg 表中的Id'; alter table wms_storage_check_mat Modify COLUMN pn_id bigint(20) default null COMMENT '库区 Id,对应 wms_rg 表中的Id'; + +//================================20240816==================================================================== +alter table project_sale_order ADD COLUMN ts varchar(32) default null COMMENT '用友时间戳'; +