diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 73181f089..bf065c058 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -173,6 +173,7 @@ public class ConstantStatus { public static final int FROM_COUNT = 11; //盘点单据转单 public static final int FROM_PLAN = 12; //申购计划转单 public static final int FROM_RECEIVE = 13; //领用单据转单 + public static final int FROM_THRORDER = 14; //第三方单据转单 //DI类型 diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 2c903e14e..0570a2bea 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -603,7 +603,7 @@ public class IoCodeTempController extends BaseController { BaseResponse baseResponse = checkRelId(codeEnttity, unitFk); - BaseResponse invRes = checkInv(bussinessTypeEntity, exitLocalEntity); + BaseResponse invRes = checkInv(bussinessTypeEntity, codeEnttity); if (invRes != null) { return invRes; } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 3a0b3dfa2..e0d3dfa36 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -14,9 +14,7 @@ import com.glxp.api.controller.BaseController; import com.glxp.api.dao.inout.IoOrderDetailBizDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.InvWarehouseEntity; -import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; -import com.glxp.api.entity.basic.BasicBussinessTypeEntity; -import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.entity.basic.*; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.thrsys.ThrOrderDetailEntity; import com.glxp.api.entity.thrsys.ThrOrderEntity; @@ -28,9 +26,7 @@ import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.service.auth.InvWarehouseService; -import com.glxp.api.service.basic.IBasicBusTypeChangeService; -import com.glxp.api.service.basic.IBasicBussinessTypeService; -import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; import com.glxp.api.service.thrsys.ThrOrderDetailService; import com.glxp.api.service.thrsys.ThrOrderService; @@ -178,25 +174,23 @@ public class IoOrderDetailBizController extends BaseController { ThrOrderDetailService thrOrderDetailService; @Resource ThrSystemBusApiService thrSystemBusApiService; + @Resource + UdiRlSupService udiRlSupService; //选入第三方单据至业务单据 @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/order/addThrOrder") - public BaseResponse addThrOrder(@RequestBody ThrOrderEntity thrOrderRequest, - BindingResult bindingResult) { + public BaseResponse addThrOrder(@RequestBody ThrOrderEntity thrOrderRequest) { - if (bindingResult.hasErrors()) { - return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); - } ThrOrderEntity thrOrderEntity = thrOrderService.findById(thrOrderRequest.getId()); if (thrOrderEntity == null) { return ResultVOUtils.error(ResultEnum.DATA_NOT); } - List thrOrderDetailEntities = thrOrderDetailService.selectByBillNo(thrOrderRequest.getBillNo()); + List thrOrderDetailEntities = thrOrderDetailService.selectByBillNo(thrOrderEntity.getBillNo()); //获取单据类型 ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiService.selectByThrBus(thrOrderEntity.getBillType(), thrOrderEntity.getThirdSysFk()); - if (thrSystemBusApiEntity == null && StrUtil.isEmpty(thrSystemBusApiEntity.getCode())) { + if (thrSystemBusApiEntity == null || StrUtil.isEmpty(thrSystemBusApiEntity.getCode())) { return ResultVOUtils.error(500, "单据类型对照有误!"); } BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(thrSystemBusApiEntity.getCode()); @@ -218,18 +212,94 @@ public class IoOrderDetailBizController extends BaseController { //获取当前部门 if (StrUtil.isNotEmpty(thrOrderEntity.getInvCode())) { - + InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByThrCode(thrOrderEntity.getInvCode(), thrOrderEntity.getThirdSysFk()); + if (invWarehouseEntity != null) { + orderEntity.setDeptCode(invWarehouseEntity.getParentId()); + orderEntity.setInvCode(invWarehouseEntity.getCode()); + } } else { return ResultVOUtils.error(500, "第三方单据所属仓库不能为空!"); + } + + //获取往来信息 + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) {//内部调拨 + + InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByThrCode(thrOrderEntity.getCorpId(), thrOrderEntity.getThirdSysFk()); + orderEntity.setFromDeptCode(invWarehouseEntity.getParentId()); + orderEntity.setFromInvCode(invWarehouseEntity.getCode()); + } else if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { //往来信息 + BasicCorpEntity basicCorpEntity = basicCorpService.selectByThirdId(thrOrderEntity.getCorpId(), thrOrderEntity.getThirdSysFk()); + orderEntity.setFromCorp(basicCorpEntity.getErpId()); + } else { + orderEntity.setFromCorp(thrOrderEntity.getCorpId()); } + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setFromType(ConstantStatus.FROM_THRORDER); + orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ); + orderService.insertOrder(orderEntity); - thrOrderService.updateThrOrder(thrOrderEntity); - return ResultVOUtils.success(); + for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) { + + thrOrderDetailEntity.getProductId(); + List udiRelevanceEntities = udiRelevanceService.selectListByThirdId(thrOrderDetailEntity.getProductId(), thrOrderEntity.getThirdSysFk()); + IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); + UdiRelevanceResponse udiRelevanceResponse = null; + if (udiRelevanceEntities.size() == 1) { + udiRelevanceResponse = udiRelevanceEntities.get(0); + ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId()); + ioOrderDetailBizEntity.setUuidFk(udiRelevanceResponse.getUuid()); + ioOrderDetailBizEntity.setNameCode(udiRelevanceResponse.getNameCode()); + ioOrderDetailBizEntity.setCoName(udiRelevanceResponse.getCpmctymc()); + ioOrderDetailBizEntity.setCertCode(udiRelevanceResponse.getZczbhhzbapzbh()); + ioOrderDetailBizEntity.setYlqxzcrbarmc(udiRelevanceResponse.getYlqxzcrbarmc()); + ioOrderDetailBizEntity.setManufacturer(udiRelevanceResponse.getManufactory()); + ioOrderDetailBizEntity.setMeasname(udiRelevanceResponse.getMeasname()); + ioOrderDetailBizEntity.setSpec(udiRelevanceResponse.getGgxh()); + ioOrderDetailBizEntity.setPrice(udiRelevanceResponse.getPrice()); + } else { + ioOrderDetailBizEntity.setCoName(thrOrderDetailEntity.getCorpName()); + ioOrderDetailBizEntity.setCertCode(thrOrderDetailEntity.getZczbhhzbapzbh()); + ioOrderDetailBizEntity.setYlqxzcrbarmc(thrOrderDetailEntity.getYlqxzcrbarmc()); + ioOrderDetailBizEntity.setManufacturer(thrOrderDetailEntity.getManufactory()); + ioOrderDetailBizEntity.setSpec(thrOrderDetailEntity.getSpec()); + ioOrderDetailBizEntity.setPrice(thrOrderDetailEntity.getPrice()); + + if (udiRelevanceEntities.size() > 1) { + String bindRlIds = ""; + for (UdiRelevanceResponse temp : udiRelevanceEntities) { + bindRlIds = bindRlIds + "," + temp.getId(); + } + ioOrderDetailBizEntity.setBindRlIds(bindRlIds); + } + } + ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo()); + ioOrderDetailBizEntity.setProductDate(thrOrderDetailEntity.getProductDate()); + ioOrderDetailBizEntity.setExpireDate(thrOrderDetailEntity.getExpireDate()); + ioOrderDetailBizEntity.setBatchNo(thrOrderDetailEntity.getBatchNo()); + ioOrderDetailBizEntity.setCount(thrOrderDetailEntity.getCount()); + + if (StrUtil.isNotEmpty(thrOrderDetailEntity.getSupId())) { + BasicCorpEntity basicCorpEntity = basicCorpService.selectByThirdId(thrOrderDetailEntity.getSupId(), thrOrderEntity.getThirdSysFk()); + ioOrderDetailBizEntity.setSupId(basicCorpEntity.getErpId()); + } else if (udiRelevanceResponse != null) { + List udiRlSupEntities = udiRlSupService.findByUdiRlId(udiRelevanceResponse.getId()); + if (CollUtil.isNotEmpty(udiRlSupEntities) && udiRlSupEntities.size() == 1) { + ioOrderDetailBizEntity.setSupId(udiRlSupEntities.get(0).getCustomerId()); + } + } + orderDetailBizService.insert(ioOrderDetailBizEntity); + } + thrOrderService.updateThrOrder(thrOrderEntity); + return ResultVOUtils.success("选入成功!"); } + @Resource + BasicCorpService basicCorpService; + //选入领用单据至业务单据 @AuthRuleAnnotation("") @@ -289,7 +359,7 @@ public class IoOrderDetailBizController extends BaseController { ioOrderDetailBizEntity.setCount(purReceiveDetailEntity.getCount()); orderDetailBizService.insert(ioOrderDetailBizEntity); } - return ResultVOUtils.success(); + return ResultVOUtils.success("选入成功!"); } diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java index 67067ac89..29117214b 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java @@ -176,6 +176,9 @@ public class IoOrderDetailBizEntity { @TableField(value = "remark5") private String remark5; + @TableField(value = "bindRlIds") + private String bindRlIds; + @TableField(exist = false) private boolean checkSuccess; diff --git a/src/main/java/com/glxp/api/req/auth/FilterInvSubWarehouseRequest.java b/src/main/java/com/glxp/api/req/auth/FilterInvSubWarehouseRequest.java index 1e2b81b6d..a822bd15d 100644 --- a/src/main/java/com/glxp/api/req/auth/FilterInvSubWarehouseRequest.java +++ b/src/main/java/com/glxp/api/req/auth/FilterInvSubWarehouseRequest.java @@ -12,5 +12,12 @@ public class FilterInvSubWarehouseRequest extends ListPageRequest { private String parentId; private Boolean defaultInv; + + public String thirdId; + public String thirdId1; + public String thirdId2; + public String thirdId3; + public String thirdId4; + private String key; } diff --git a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java index e9f763bd0..a6e931077 100644 --- a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java +++ b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java @@ -12,6 +12,9 @@ public interface InvWarehouseService { InvWarehouseEntity findById(String id); + InvWarehouseEntity selectByThrCode(String code, String thirdSys); + + List filterInvSubWarehouse(FilterInvSubWarehouseRequest filterInvSubWarehouseRequest); List filterGroupInvSub(FilterInvWarehouseRequest filterInvSubWarehouseRequest); diff --git a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java index 6cc18054e..7e6e04336 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.service.auth.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.auth.InvWarehouseDao; @@ -40,6 +41,17 @@ public class InvWarehouseServiceImpl implements InvWarehouseService { return null; } + @Override + public InvWarehouseEntity selectByThrCode(String code, String thirdSys) { + FilterInvSubWarehouseRequest filterInvSubWarehouseRequest = new FilterInvSubWarehouseRequest(); + ReflectUtil.setFieldValue(filterInvSubWarehouseRequest, thirdSys, code); + List invWarehouseEntities = filterInvSubWarehouse(filterInvSubWarehouseRequest); + if (CollUtil.isNotEmpty(invWarehouseEntities)) + return invWarehouseEntities.get(0); + + return null; + } + @Override public List filterInvSubWarehouse(FilterInvSubWarehouseRequest filterInvSubWarehouseRequest) { if (filterInvSubWarehouseRequest == null) { diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java index c890363ad..889657cb8 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -56,6 +56,8 @@ public interface UdiRelevanceService { UdiRelevanceEntity selectByThirdId(String thirdId, String thirdSys); + List selectListByThirdId(String thirdId, String thirdSys); + boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); boolean insertUdiRelevanceignore(UdiRelevanceEntity udiRelevanceEntity); diff --git a/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java b/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java index b699c61b5..60ad82098 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java @@ -22,7 +22,7 @@ public interface UdiRlSupService { UdiRlSupEntity findByUdiRlIdUnitFk(String udiRlIdFk, String unitFk); - List findByUdiRlId(String udiRlIdFk); + List findByUdiRlId(Long udiRlIdFk); UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity); diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java index 9bf70b0f3..379ae31ef 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java @@ -36,7 +36,6 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); } - List data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest); return data; } @@ -269,6 +268,28 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { return udiRelevanceDao.selectByThirdId(filterUdiRelRequest); } + @Override + public List selectListByThirdId(String thirdId, String thirdSys) { + if (StrUtil.isEmpty(thirdId) || StrUtil.isEmpty(thirdSys)) { + return null; + } + + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + if ("thirdId".equals(thirdSys)) { + filterUdiRelRequest.setThirdId(thirdId); + } else if ("thirdId1".equals(thirdSys)) { + filterUdiRelRequest.setThirdId1(thirdId); + } else if ("thirdId2".equals(thirdSys)) { + filterUdiRelRequest.setThirdId2(thirdId); + } else if ("thirdId3".equals(thirdSys)) { + filterUdiRelRequest.setThirdId3(thirdId); + } else if ("thirdId4".equals(thirdSys)) { + filterUdiRelRequest.setThirdId4(thirdId); + } + List data = udiRelevanceDao.filterUdiGp(filterUdiRelRequest); + return data; + } + @Override public boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) { return udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java index 2dd4fd455..6406befba 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java @@ -84,9 +84,9 @@ public class UdiRlSupServiceImpl implements UdiRlSupService { } @Override - public List findByUdiRlId(String udiRlIdFk) { + public List findByUdiRlId(Long udiRlIdFk) { FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); - filterCompanyProductRelevanceRequest.setUdiRlIdFk(udiRlIdFk); + filterCompanyProductRelevanceRequest.setUdiRlIdFk(udiRlIdFk + ""); List companyProductRelevanceEntities = udiRlSupDao.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); return companyProductRelevanceEntities; } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java index 40949ba1e..9984f516f 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java @@ -136,7 +136,7 @@ public class InvProductDetailServiceImpl implements InvProductDetailService { return 0; } List datas = - invProductDetailDao.selectList(new QueryWrapper().eq("relIdFk", relId).eq("deptCode", deptCode).eq("invCode", invCode).eq("invSpaceCode", invSpaceCode)); + invProductDetailDao.selectList(new QueryWrapper().eq("relId", relId).eq("deptCode", deptCode).eq("invCode", invCode).eq("invSpaceCode", invSpaceCode)); int count = 0; if (CollUtil.isNotEmpty(datas)) { for (InvProductDetailEntity invProductDetailEntity : datas) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 973044518..880c9196a 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: 123456 + password: Glxp@6066 hikari: connection-timeout: 60000 maximum-pool-size: 60 diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 4c01a2e75..9a2137f42 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -3,3 +3,6 @@ CALL Pro_Temp_ColumnWork('io_order', 'fromReceiveBillNo', 'varchar(255) ', 1); CALL Pro_Temp_ColumnWork('io_order', 'fromThrBillNo', 'varchar(255) ', 1); CALL Pro_Temp_ColumnWork('thr_bustype_origin', 'thirdSysName', 'varchar(255) ', 3); CALL Pro_Temp_ColumnWork('thr_system_bus_api', 'thirdBuyName', 'varchar(255) ', 3); + +CALL Pro_Temp_ColumnWork('io_order_detail_biz', 'bindRlIds', 'varchar(255) ', 1); +