【测试】用友数据反写

dev
siontion 2 months ago
parent ab7d68bc5b
commit f82ff6e0eb

@ -4,12 +4,18 @@ import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;
import com.chanjet.openapi.sdk.java.response.GetTokenResponse; import com.chanjet.openapi.sdk.java.response.GetTokenResponse;
import com.chanjet.openapi.sdk.java.response.RefreshTokenResponse; import com.chanjet.openapi.sdk.java.response.RefreshTokenResponse;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.framework.tenant.core.aop.TenantIgnore; import com.chanko.yunxi.mes.framework.tenant.core.aop.TenantIgnore;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.BomMaterialReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.BomMaterialReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.BomMaterialVO; import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.BomMaterialVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.QueryCurrentStockResVO; import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.QueryCurrentStockResVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO;
import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderMapper;
import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.biz.dal.mysql.taskreport.TaskReportMapper;
import com.chanko.yunxi.mes.module.biz.enums.ProjectOrderStatusEnum;
import com.chanko.yunxi.mes.module.biz.manager.ChanjetManager; import com.chanko.yunxi.mes.module.biz.manager.ChanjetManager;
import com.chanko.yunxi.mes.module.biz.manager.ChanjetSchedule; import com.chanko.yunxi.mes.module.biz.manager.ChanjetSchedule;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserSaveReqVO; import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserSaveReqVO;
@ -56,6 +62,12 @@ public class ChanjetController {
@Resource @Resource
private ChanjetTokenHolder chanjetTokenHolder; private ChanjetTokenHolder chanjetTokenHolder;
@Resource
private ProjectOrderMapper projectOrderMapper;
@Resource
private TaskReportMapper taskReportMapper;
/** /**
* OAuth * OAuth
@ -257,29 +269,69 @@ public class ChanjetController {
@PermitAll @PermitAll
@TenantIgnore @TenantIgnore
@GetMapping("/chronicData") @GetMapping("/chronicData")
@Operation(summary = "定时更新") @Operation(summary = "定时更新(物料和库存)")
@PreAuthorize("@ss.hasPermission('biz:storage:create')") @PreAuthorize("@ss.hasPermission('biz:storage:create')")
@Scheduled(cron = "0 0 3 * * ?") @Scheduled(cron = "0 0 3 * * ?")
public void synchronizeData() throws ChanjetApiException{ public void synchronizeData() throws ChanjetApiException{
// chanjetManager.queryMaterial(); // chanjetManager.queryMaterial();
// //查询库存-现存量 // //查询库存-现存量
// chanjetSchedule.queryStock(); // chanjetSchedule.queryStock();
// //创建入库
// chanjetSchedule.createStorageInOrder();
chanjetManager.createProductionOrder(232L);
//测试
// chanjetManager.createProductionOrder(232L);
// sendProcedureReport2TPlus();
// chanjetSchedule.createStorageOut();
chanjetSchedule.createStorageInOrder();
} }
@PermitAll @PermitAll
@TenantIgnore @TenantIgnore
@GetMapping("/sendData2TPlus") @GetMapping("/sendProductOrder2TPlus")
@Operation(summary = "定时更新") @Operation(summary = "定时更新(生产加工单)")
@PreAuthorize("@ss.hasPermission('biz:storage:create')") @PreAuthorize("@ss.hasPermission('biz:storage:create')")
@Scheduled(cron = "0 0 2 * * ?") @Scheduled(cron = "0 0 0 * * ?")
public void synchronizeData2() throws ChanjetApiException{ public void sendProductOrder2TPlus() throws ChanjetApiException{
//查询库存-现存量 List<ProjectOrderDO> projectOrderDOS = projectOrderMapper.selectList(new LambdaQueryWrapperX<ProjectOrderDO>(){{
// chanjetSchedule.createStorageOut(); eq(ProjectOrderDO::getOrderStatus, ProjectOrderStatusEnum.DISPATCH.getCode());
isNull(ProjectOrderDO::getTs);
}});
for (ProjectOrderDO po : projectOrderDOS) {
chanjetManager.createProductionOrder(po.getId());
}
}
@PermitAll
@TenantIgnore
@GetMapping("/sendProcedureReport2TPlus")
@Operation(summary = "定时更新(工序汇报单)")
@PreAuthorize("@ss.hasPermission('biz:storage:create')")
@Scheduled(cron = "0 30 0 * * ?")
public void sendProcedureReport2TPlus() throws ChanjetApiException{
List<TaskReportDO> taskReportDOS = taskReportMapper.selectUnSynchReportData();
for (TaskReportDO po : taskReportDOS) {
chanjetManager.createTaskReport(po.getId());
}
}
@PermitAll
@TenantIgnore
@GetMapping("/sendStorageOut2TPlus")
@Operation(summary = "定时更新(材料出库单)")
@PreAuthorize("@ss.hasPermission('biz:storage:create')")
@Scheduled(cron = "0 0 1 * * ?")
public void sendStorageOut2TPlus() throws ChanjetApiException{
//创建出库单
chanjetSchedule.createStorageOut();
}
chanjetManager.createProductionOrder(232L); @PermitAll
@TenantIgnore
@GetMapping("/sendStorageIn2TPlus")
@Operation(summary = "定时更新(产成品入库单)")
@PreAuthorize("@ss.hasPermission('biz:storage:create')")
@Scheduled(cron = "0 30 1 * * ?")
public void sendStorageIn2TPlus() throws ChanjetApiException{
//创建入库单
chanjetSchedule.createStorageInOrder();
} }
} }

@ -31,10 +31,12 @@ public enum ChanjetInterfaceEnum {
CREATE_STOCK_OUT_ORDER("/tplus/api/v2/materialDispatch/Create", "创建出库单", CreateStockOutOrderReqVO.class, ResultResVO.class), 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), CREATE_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Create", "创建生产加工单", CreateProductionOrderReqVO.class, ResultResVO.class),
UPDATE_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Update", "创建生产加工单", CreateProductionOrderReqVO.class, ResultResVO.class), UPDATE_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Update", "修改生产加工单", CreateProductionOrderReqVO.class, ResultResVO.class),
DELETE_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Delete", "删除生产加工单", CreateProductionOrderReqVO.class, ResultResVO.class),
AUDIT_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/Audit", "审核生产加工单", AuditProductionOrderReqVO.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), 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), QUERY_PRODUCTION_ORDER_LIST("/tplus/api/v2/ManufactureOrderOpenApi/FindVoucherList", "查询生产加工单列表", ListProductionOrderReqVO.class, ListResultResVO.class),
QUERY_PRODUCTION_ORDER("/tplus/api/v2/ManufactureOrderOpenApi/GetVoucherDTO", "查询生产加工单", QuerySaleOrderReqVO.class, ResultResVO.class),
CREATE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Create", "创建工序汇报单", CreateReportReqVO.class, ResultResVO.class), CREATE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Create", "创建工序汇报单", CreateReportReqVO.class, ResultResVO.class),
UPDATE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Update", "修改工序汇报单", CreateReportReqVO.class, ResultResVO.class), UPDATE_REPORT("/tplus/api/v2/ManufactureReportOpenApi/Update", "修改工序汇报单", CreateReportReqVO.class, ResultResVO.class),

@ -35,4 +35,8 @@ public class Process {
return Name; return Name;
} }
public Process(String code){
this.Code = code;
}
} }

@ -116,5 +116,7 @@ public class StorageDO extends BaseDO {
private Long workshopId; private Long workshopId;
@TableField(exist = false) @TableField(exist = false)
private String workshopName; private String workshopName;
@TableField(exist = false)
private String workshopCode;
} }

@ -118,6 +118,9 @@ public class TaskReportDO extends BaseDO {
@TableField(exist = false) @TableField(exist = false)
private String procedureName; private String procedureName;
@TableField(exist = false)
private String procedureCode;
@TableField(exist = false) @TableField(exist = false)
private String updaterName; private String updaterName;
@ -130,7 +133,8 @@ public class TaskReportDO extends BaseDO {
@TableField(exist = false) @TableField(exist = false)
private String ownerUsername; private String ownerUsername;
private Integer hasSynch; private Boolean hasSynch;
private Boolean hasSynchStorage;
@TableField(exist = false) @TableField(exist = false)
private Integer isFinal; private Integer isFinal;

@ -57,9 +57,11 @@ public interface StorageMapper extends BaseMapperX<StorageDO> {
MPJLambdaWrapper<StorageDO> query = new MPJLambdaWrapper<>(); MPJLambdaWrapper<StorageDO> query = new MPJLambdaWrapper<>();
query.selectAll(StorageDO.class) query.selectAll(StorageDO.class)
.select("d.name as projectSubName,d.code as projectSubCode") .select("d.name as projectSubName,d.code as projectSubCode")
.select("e.name as workshopName,e.code as workshopCode")
.leftJoin(TaskDispatchDO.class, "b", TaskDispatchDO::getCode, StorageDO::getHeaderNo) .leftJoin(TaskDispatchDO.class, "b", TaskDispatchDO::getCode, StorageDO::getHeaderNo)
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId) .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId)
.leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId) .leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId)
.leftJoin(WorkshopDO.class,"e",WorkshopDO::getId,StorageDO::getWorkshopId)
.disableSubLogicDel() .disableSubLogicDel()
.eq(StorageDO::getId, id) .eq(StorageDO::getId, id)
.last("LIMIT 1"); .last("LIMIT 1");

@ -108,6 +108,7 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
"e.name as projectSubName", "e.code as projectSubCode", "e.spec", "e.unit") "e.name as projectSubName", "e.code as projectSubCode", "e.spec", "e.unit")
.select("z.code as dispatchCode") .select("z.code as dispatchCode")
.select("y.name as procedureName") .select("y.name as procedureName")
.select("y.code as procedureCode")
.select("u1.nickname as ownerName", "u2.nickname as updaterName") .select("u1.nickname as ownerName", "u2.nickname as updaterName")
.select("u1.username as ownerUsername") .select("u1.username as ownerUsername")
.select("a.plan_no as planCode") .select("a.plan_no as planCode")
@ -147,7 +148,7 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
.orderByDesc(TaskReportDO::getId) .orderByDesc(TaskReportDO::getId)
.disableSubLogicDel(); .disableSubLogicDel();
query.apply(true,"c.warehouse_id is not null","").apply(true,"(t.has_synch is null or t.has_synch={0})","0"); query.apply(true,"c.warehouse_id is not null","").apply(true,"(t.has_synch_storage is null or t.has_synch_storage={0})","0");
return selectPage(reqVO, query); return selectPage(reqVO, query);
} }
@ -263,5 +264,22 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
return selectPage(pageReqVO,query); return selectPage(pageReqVO,query);
} }
default List<TaskReportDO> selectUnSynchReportData() {
MPJLambdaWrapperX<TaskReportDO> query = new MPJLambdaWrapperX<>();
query.distinct()
.select("t.id")
.leftJoin("pro_task_dispatch_detail as a on t.dispatch_detail_id=a.id")
.leftJoin("pro_task_dispatch as b on b.id=a.dispatch_id")
.leftJoin("project_sale_order_sub as c on c.project_order_id=b.project_id and c.id=b.project_sub_id")
.disableSubLogicDel();
query.isNull(TaskReportDO::getHasSynch)
.apply("c.production_id is not null and c.production_detail_id is not null")
;
return selectList(query);
}
} }

@ -14,6 +14,7 @@ import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService; import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetSpi; import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetSpi;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.*; import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.Process;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*; import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.ProjectOrderController; import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.ProjectOrderController;
@ -1312,15 +1313,22 @@ public class ChanjetManager {
ManufactureReportDetails reportDetail = new ManufactureReportDetails(); ManufactureReportDetails reportDetail = new ManufactureReportDetails();
ArrayList<ManufactureReportTeamDetails> reportTeamDetails = new ArrayList<>(); ArrayList<ManufactureReportTeamDetails> reportTeamDetails = new ArrayList<>();
manufactureReportDetails.add(reportDetail); manufactureReportDetails.add(reportDetail);
reportDetail.setQuantity(aDO.getAmount())
reportDetail.setSourceVoucherId(taskDispatchDetailDO.getProductionId())
.setSourceVoucherDetailId(taskDispatchDetailDO.getProductionDetailId())
.setInventory(new Inventory(taskDispatchDetailDO.getProjectSubCode()))
.setRouting(new Routing("99"))
.setProcess(new Process(aDO.getProcedureCode()))
.setUnit(new Unit(taskDispatchDetailDO.getUnit()))
.setWorkShop(new WorkShopDTO(taskDispatchDetailDO.getWorkshopCode())) .setWorkShop(new WorkShopDTO(taskDispatchDetailDO.getWorkshopCode()))
.setQuantity(aDO.getAmount())
.setManufactureReportTeamDetails(reportTeamDetails) .setManufactureReportTeamDetails(reportTeamDetails)
.setSourceVoucherId(taskDispatchDetailDO.getProductionId())
.setSourceVoucherDetailId(taskDispatchDetailDO.getProductionDetailId())
; ;
ManufactureReportTeamDetails reportTeamDetail = new ManufactureReportTeamDetails(); ManufactureReportTeamDetails reportTeamDetail = new ManufactureReportTeamDetails();
reportTeamDetails.add(reportTeamDetail); reportTeamDetails.add(reportTeamDetail);
reportTeamDetail.setPerson(new Person(aDO.getOwnerUsername())); reportTeamDetail.setPerson(new Person(aDO.getOwnerUsername()));
reportTeamDetail.setQuantity(aDO.getAmount());
// 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口 // 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口
if(getSystemParameters()) { if(getSystemParameters()) {
@ -1328,6 +1336,9 @@ public class ChanjetManager {
if (!result.isSuccess()) { if (!result.isSuccess()) {
throw exception(CALL_API_ERROR); throw exception(CALL_API_ERROR);
} }
aDO.setHasSynch(true);
taskReportMapper.updateById(aDO);
} }
} }
@ -1462,52 +1473,89 @@ public class ChanjetManager {
.setManufactureOrderDetails(detailList); .setManufactureOrderDetails(detailList);
// ManufactureOrderDetails detail = new ManufactureOrderDetails(); // 设置生产加工单工序信息
// DictDataDO dictDataDO = dictDataMapper.selectByDictTypeAndValue(DictTypeConstants.MATERIAL_UNIT.getCode(), subDOList.get(0).getUnit()); List<ManufactureOrderProcessDetails> manufactureOrderProcessDetailsList = new ArrayList<>();
// ManufactureOrderProcessDetails manufactureOrderProcessDetails = new ManufactureOrderProcessDetails();
// detail.setInventory(new Inventory(subDOList.get(0).getProjectSubCode())) manufactureOrderProcessDetails.setInventory(new Inventory(subDOList.get(0).getProjectSubCode()));
// .setUnit(new Unit(dictDataDO.getLabel())) ProcessingType processingType = new ProcessingType();
// .setQuantity(subDOList.get(0).getAmount()) processingType.setCode("HomeMade");
// .setPreStartDate(aDo.getProjectStartTime().format(DateTimeFormatter.ISO_DATE)) manufactureOrderProcessDetails.setProcessingType(processingType);
// .setPreFinishDate(aDo.getProjectEndTime().format(DateTimeFormatter.ISO_DATE)) manufactureOrderProcessDetails.setUnit(new Unit(subDOList.get(0).getUnit()));
// ; // 生产订单必须要选择工序,否则无法与工序汇报单无法匹配
// detailList.add(detail); manufactureOrderProcessDetails.setProcess(new Process("01"));
manufactureOrderProcessDetailsList.add(manufactureOrderProcessDetails);
subDOList.forEach(subDO -> {
ManufactureOrderDetails detail = new ManufactureOrderDetails(); ManufactureOrderDetails detail = new ManufactureOrderDetails();
DictDataDO dictDataDO = dictDataMapper.selectByDictTypeAndValue(DictTypeConstants.MATERIAL_UNIT.getCode(), subDO.getUnit()); DictDataDO dictDataDO = dictDataMapper.selectByDictTypeAndValue(DictTypeConstants.MATERIAL_UNIT.getCode(), subDOList.get(0).getUnit());
detail.setInventory(new Inventory(subDO.getProjectSubCode())) detail.setInventory(new Inventory(subDOList.get(0).getProjectSubCode()))
.setUnit(new Unit(dictDataDO.getLabel())) .setUnit(new Unit(dictDataDO.getLabel()))
.setQuantity(subDO.getAmount()) .setQuantity(subDOList.get(0).getAmount())
.setPreStartDate(aDo.getProjectStartTime().format(DateTimeFormatter.ISO_DATE)) .setPreStartDate(aDo.getProjectStartTime().format(DateTimeFormatter.ISO_DATE))
.setPreFinishDate(aDo.getProjectEndTime().format(DateTimeFormatter.ISO_DATE)) .setPreFinishDate(aDo.getProjectEndTime().format(DateTimeFormatter.ISO_DATE))
.setManufactureOrderProcessDetails(manufactureOrderProcessDetailsList)
; ;
detailList.add(detail); detailList.add(detail);
});
// subDOList.forEach(subDO -> {
// ManufactureOrderDetails detail = new ManufactureOrderDetails();
// DictDataDO dictDataDO = dictDataMapper.selectByDictTypeAndValue(DictTypeConstants.MATERIAL_UNIT.getCode(), subDO.getUnit());
//
// detail.setInventory(new Inventory(subDO.getProjectSubCode()))
// .setUnit(new Unit(dictDataDO.getLabel()))
// .setQuantity(subDO.getAmount())
// .setPreStartDate(aDo.getProjectStartTime().format(DateTimeFormatter.ISO_DATE))
// .setPreFinishDate(aDo.getProjectEndTime().format(DateTimeFormatter.ISO_DATE))
// ;
// detailList.add(detail);
// });
// 设置为“是”,打开所有与用友通信的接口 // 设置为“是”,打开所有与用友通信的接口
if(getSystemParameters()) { if(getSystemParameters()) {
//判断是否已经提交过生产加工单
CommonResult<ListResultResVO> resultExist =
chanjetSpi.invoke(QUERY_PRODUCTION_ORDER_LIST, new ListProductionOrderReqVO(aDo.getCode()), ListResultResVO.class);
if (!resultExist.isSuccess()) {
throw new RuntimeException("queryProductionOrder exception: " + JSON.toJSONString(resultExist));
}
CommonResult<ResultResVO> result = null; CommonResult<ResultResVO> result = null;
if(aDo.getTs()==null || aDo.getTs().isEmpty()){ if(resultExist.getData().getData()!=null && resultExist.getData().getData().getTotalCount()==0){
//没提交过,直接创建生产加工单
result = chanjetSpi.invoke(CREATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); result = chanjetSpi.invoke(CREATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class);
}else{ }else{
//生产加工单修改前要先弃审 //生产加工单修改接口问题,重新提交时要先弃审,删除,再重新创建,
CommonResult<ResultResVO> result3 = chanjetSpi.invoke(UN_AUDIT_PRODUCTION_ORDER, new QuerySaleOrderReqVO(new QuerySaleOrderReqVO.SaleOrderParamVO(aDo.getCode())), ResultResVO.class); CommonResult<ResultResVO> result3 =
chanjetSpi.invoke(UN_AUDIT_PRODUCTION_ORDER, new QuerySaleOrderReqVO(new QuerySaleOrderReqVO.SaleOrderParamVO(aDo.getCode())), ResultResVO.class);
if (!result3.isSuccess() || !result3.getData().isSuccess()) { if (!result3.isSuccess() || !result3.getData().isSuccess()) {
throw new RuntimeException(result3.getMsg()); throw new RuntimeException(result3.getMsg());
} }
dto.setTs(aDo.getTs()); //更新时必须带创建后用友返回的时间戳TODO:更新接口不明确,暂时不用,取而代之使用删除接口
result = chanjetSpi.invoke(UPDATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); // dto.setTs(aDo.getTs());
// result = chanjetSpi.invoke(UPDATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class);
CommonResult<ResultResVO> result4 =
chanjetSpi.invoke(DELETE_PRODUCTION_ORDER,
new AuditProductionOrderReqVO(new AuditProductionOrderReqVO.AuditProductionOrderParamVO(externalCode)),
ResultResVO.class);
if (!result4.isSuccess() || !result4.getData().isSuccess()) {
throw new RuntimeException(result4.getMsg());
}
//删除成功后,重新提交生产加工单
result = chanjetSpi.invoke(CREATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class);
} }
// CommonResult<ResultResVO> result = chanjetSpi.invoke(UPDATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class); // CommonResult<ResultResVO> result = chanjetSpi.invoke(UPDATE_PRODUCTION_ORDER, new CreateProductionOrderReqVO(dto), ResultResVO.class);
if (!result.isSuccess() || !result.getData().isSuccess()) { if (!result.isSuccess() || !result.getData().isSuccess()) {
throw exception(CALL_API_ERROR); throw exception(CALL_API_ERROR);
} }
// 暂不考虑失败场景 TODO 重试接口 // 创建成功后,需要重新审核 暂不考虑失败场景 TODO 重试接口
CommonResult<ResultResVO> result2 = chanjetSpi.invoke(AUDIT_PRODUCTION_ORDER, new AuditProductionOrderReqVO(new AuditProductionOrderReqVO.AuditProductionOrderParamVO(externalCode)), ResultResVO.class); CommonResult<ResultResVO> result2 =
chanjetSpi.invoke(AUDIT_PRODUCTION_ORDER, new AuditProductionOrderReqVO(new AuditProductionOrderReqVO.AuditProductionOrderParamVO(externalCode)), ResultResVO.class);
if (!result2.isSuccess() || !result2.getData().isSuccess()) { if (!result2.isSuccess() || !result2.getData().isSuccess()) {
throw new RuntimeException(result2.getMsg()); throw new RuntimeException(result2.getMsg());
} }
@ -1519,7 +1567,8 @@ public class ChanjetManager {
projectOrderMapper.updateById(aDo); projectOrderMapper.updateById(aDo);
// 查询报工单数据 将id回写至子项目表 // 查询报工单数据 将id回写至子项目表
Map<String, List<ProjectOrderSubDO>> subGroupByProjectSubCode = subDOList.stream().collect(Collectors.groupingBy(ProjectOrderSubDO::getProjectSubCode)); Map<String, List<ProjectOrderSubDO>> subGroupByProjectSubCode = subDOList.stream().collect(Collectors.groupingBy(ProjectOrderSubDO::getProjectSubCode));
CommonResult<ListResultResVO> listResult = chanjetSpi.invoke(QUERY_PRODUCTION_ORDER_LIST, new ListProductionOrderReqVO(rMap.get("Code")), ListResultResVO.class); CommonResult<ListResultResVO> listResult =
chanjetSpi.invoke(QUERY_PRODUCTION_ORDER_LIST, new ListProductionOrderReqVO(rMap.get("Code")), ListResultResVO.class);
if (!listResult.isSuccess() || listResult.getData() == null || listResult.getData().getData() == null || listResult.getData().getData().getTotalCount() == 0) { if (!listResult.isSuccess() || listResult.getData() == null || listResult.getData().getData() == null || listResult.getData().getData().getTotalCount() == 0) {
throw new RuntimeException("queryProductionOrder exception: " + JSON.toJSONString(listResult)); throw new RuntimeException("queryProductionOrder exception: " + JSON.toJSONString(listResult));
} }

@ -624,7 +624,7 @@ public class ChanjetSchedule {
}); });
reprotResult.getList().forEach(item->{ reprotResult.getList().forEach(item->{
item.setHasSynch(1); item.setHasSynchStorage(true);
taskReportMapper.updateById(item); taskReportMapper.updateById(item);
}); });
storageMapper.updateTenantId(); storageMapper.updateTenantId();
@ -662,7 +662,7 @@ public class ChanjetSchedule {
.setVoucherDate(sdf.format(new Date())) .setVoucherDate(sdf.format(new Date()))
.setRDRecordDetails(detailList) .setRDRecordDetails(detailList)
.setWarehouse(new Warehouse(warehouseDO.getWhNo())) .setWarehouse(new Warehouse(warehouseDO.getWhNo()))
.setDepartment(new DepartmentDTO().setCode(null).setName(null)) .setDepartment(new DepartmentDTO().setName(storage.getWorkshopName()).setCode(storage.getWorkshopCode()))
; ;
vo.forEach(mat -> { vo.forEach(mat -> {

@ -672,4 +672,5 @@ alter table wms_storage_check_mat Modify COLUMN pn_id bigint(20) default null CO
//================================20240816==================================================================== //================================20240816====================================================================
alter table project_sale_order ADD COLUMN ts varchar(32) default null COMMENT '用友时间戳'; alter table project_sale_order ADD COLUMN ts varchar(32) default null COMMENT '用友时间戳';
ALTER TABLE pro_task_report ADD COLUMN `has_synch_storage` TINYINT(1) DEFAULT null COMMENT '入库同步标识';

Loading…
Cancel
Save