diff --git a/api-admin/src/main/java/com/glxp/sale/admin/config/HdSchemaExecutor.java b/api-admin/src/main/java/com/glxp/sale/admin/config/HdSchemaExecutor.java index a90d125..f93f1bd 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/config/HdSchemaExecutor.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/config/HdSchemaExecutor.java @@ -74,7 +74,7 @@ public class HdSchemaExecutor implements ApplicationRunner { } public void buildSchemas() { -// schema.add(new SchemaData("v2.1", "schema_v2.1.sql")); + schema.add(new SchemaData("v2.1", "schema_v2.1.sql")); // schema.add(new SchemaData("v2.2", "schema_v2.2.sql")); // schema.add(new SchemaData("v2.3", "schema_v2.3.sql")); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncExportStatusController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncExportStatusController.java index aa569c8..eeec865 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncExportStatusController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncExportStatusController.java @@ -76,8 +76,9 @@ public class SpsSyncExportStatusController { @PostMapping("/spssync/basic/udiinfo/updateStatus") public BaseResponse updateStatus(@RequestBody BasicExportStatusEntity basicExportStatusEntity) { - - basicExportStatusEntity.setEndTime(new Date()); + if (StrUtil.isEmpty(basicExportStatusEntity.getReceiveStatus())) { + basicExportStatusEntity.setEndTime(new Date()); + } basicExportStatusEntity.setUpdateTime(new Date()); boolean b = basicExportService.updateExportStatus(basicExportStatusEntity); if (b) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java index a9900c5..3596225 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java @@ -86,7 +86,7 @@ public class UdiInfoController { BeanUtils.copyProperties(filterUdiInfoRequest, productInfoFilterRequest); if (StrUtil.isNotEmpty(nameCode)) { productInfoFilterRequest.setNameCode(nameCode); - }else { + } else { productInfoFilterRequest.setDiType("1"); } try { @@ -128,6 +128,69 @@ public class UdiInfoController { } + //校验UDI完整性 + @AuthRuleAnnotation("") + @GetMapping("udidl/device/vailUdiCode") + public BaseResponse vailUdiCode(String udiCode) { + + if (StrUtil.isEmpty(udiCode)) { + return ResultVOUtils.error(500, "查询条件不能为空!"); + } + UdiEntity udiEntity = FilterUdiUtils.getUdi(udiCode); + if (udiEntity == null) { + return ResultVOUtils.error(500, "UDI码格式错误!"); + } else { + if (StrUtil.isNotEmpty(udiEntity.getUdi())) { + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); + productInfoFilterRequest.setNameCode(udiEntity.getUdi()); + List productInfoEntityList = productInfoService.filterProductInfo(productInfoFilterRequest); + if (CollUtil.isEmpty(productInfoEntityList)) { + return ResultVOUtils.error(500, "未查询到该UDI码国家库产品信息!"); + } else { + ProductInfoEntity productInfoEntity = productInfoEntityList.get(0); + String lostMsg = ""; + boolean checkSuccess = true; + if ("是".equals(productInfoEntity.getScbssfbhph()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + checkSuccess = false; + lostMsg = lostMsg + ",批次号"; + } + if ("是".equals(productInfoEntity.getScbssfbhscrq()) && StrUtil.isEmpty(udiEntity.getProduceDate())) { + checkSuccess = false; + lostMsg = lostMsg + ",生产日期"; + } + + if ("是".equals(productInfoEntity.getScbssfbhsxrq()) && StrUtil.isEmpty(udiEntity.getExpireDate())) { + checkSuccess = false; + lostMsg = lostMsg + ",失效日期"; + } + if (("是".equals(productInfoEntity.getScbssfbhxlh()) && StrUtil.isEmpty(udiEntity.getSerialNo())) + ) { + checkSuccess = false; + lostMsg = lostMsg + ",序列号"; + } + if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length() > 20) { + return ResultVOUtils.error(504, "序列号超出20位!"); + } + if (StrUtil.isNotEmpty(udiEntity.getBatchNo()) && udiEntity.getBatchNo().length() > 20) { + return ResultVOUtils.error(504, "批次号超出20位!"); + } + if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + checkSuccess = false; + } + if (checkSuccess) { + return ResultVOUtils.success(productInfoEntity); + } else { + return ResultVOUtils.error(500, "UDI码格式错误,缺少" + lostMsg.substring(1)); + } + } + } else { + return ResultVOUtils.error(500, "UDI码格式错误!"); + } + } + + } + + @AuthRuleAnnotation("") @GetMapping("udiwms/udiinfo/superSearch") public BaseResponse superSearch(FilterUdiInfoRequest filterUdiInfoRequest) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java index 0906626..ce9f1eb 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.ConstantStatus; +import com.glxp.sale.admin.constant.ConstantType; import com.glxp.sale.admin.controller.inout.utils.DataTransUtil; import com.glxp.sale.admin.dao.inout.CodesTempDao; import com.glxp.sale.admin.dao.inout.OrderDao; @@ -21,11 +22,13 @@ import com.glxp.sale.admin.entity.inventory.InvWarehouseEntity; import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; import com.glxp.sale.admin.entity.udid.UdiEntity; import com.glxp.sale.admin.req.basic.BasicEntrustRecRequest; +import com.glxp.sale.admin.req.basic.BussinessTypeFilterRequest; import com.glxp.sale.admin.req.inout.*; import com.glxp.sale.admin.req.inventory.FilterInvBusUserRequest; import com.glxp.sale.admin.req.inventory.FilterInvUserRequest; import com.glxp.sale.admin.req.inventory.FilterInvWarehouseRequest; import com.glxp.sale.admin.res.PageSimpleResponse; +import com.glxp.sale.admin.res.basic.BussinessTypResponse; import com.glxp.sale.admin.res.inout.OrderEditRequest; import com.glxp.sale.admin.service.auth.AuthAdminService; import com.glxp.sale.admin.service.auth.CustomerService; @@ -773,6 +776,57 @@ public class OrderController { return ResultVOUtils.success(pageSimpleResponse); } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/filterPreInChange") + public BaseResponse filterPreInChange(String billNo, String code) { + + + if (StrUtil.isEmpty(code) && StrUtil.isEmpty(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + List orderEntities = new ArrayList<>(); + + if (StrUtil.isNotEmpty(code)) { + + //查询预验收单据类型 + BussinessTypeFilterRequest bussinessTypeFilterRequest = new BussinessTypeFilterRequest(); + bussinessTypeFilterRequest.setPreIn(true); + bussinessTypeFilterRequest.setMainAction(ConstantType.TYPE_PUT); + List bussinessTypResponses = bussinessTypeService.filterJoinList(bussinessTypeFilterRequest); + + List actions = new ArrayList<>(); + if (CollUtil.isNotEmpty(bussinessTypResponses)) { + for (BussinessTypResponse bussinessTypResponse : bussinessTypResponses) { + actions.add(bussinessTypResponse.getAction()); + } + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setCode(code); + warehouseQueryRequest.setActions(actions); + List warehouseEntityList = codesService.findAllByOrderId(warehouseQueryRequest); + if (CollUtil.isNotEmpty(warehouseEntityList)) { + for (WarehouseEntity warehouseEntity : warehouseEntityList) { + List temps = orderService.filterPreInChange(warehouseEntity.getOrderId()); + if (CollUtil.isNotEmpty(temps)) + orderEntities.addAll(temps); + + } + } + } + + + } else { + orderEntities = orderService.filterPreInChange(billNo); + } + + PageInfo pageInfo = new PageInfo<>(orderEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(orderEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/order/updateOrderInfo") public BaseResponse updateOrderInfo(@RequestBody OrderEditRequest orderEditRequest) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/utils/CheckOrderUtils.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/utils/CheckOrderUtils.java index 09acdbf..6e7a3ff 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/utils/CheckOrderUtils.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/utils/CheckOrderUtils.java @@ -42,10 +42,10 @@ public class CheckOrderUtils { @Resource BussinessOriginTypeService bussinessOriginTypeService; - public void check(String orderId, List vailOrderEntities) { + public void check(String orderId, List vailOrderEntities) { //被校验业务单据明细 FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); filterErpOrderRequest.setOrderId(orderId); - List myErpOrders = orderDetailService.filterAllMyErpOrder(filterErpOrderRequest); + List myErpOrders = orderDetailService.filterAllMyErpOrder(filterErpOrderRequest); //扫码单据业务明细 OrderEntity orderEntity = orderService.findById(orderId); String errMsg = null; BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction()); @@ -274,6 +274,8 @@ public class CheckOrderUtils { return null; } else if (StrUtil.isEmpty(vailOrderEntity.getBatchNo()) && StrUtil.isEmpty(myErpOrder.getBatchNo())) { return null; + } else if (StrUtil.isEmpty(myErpOrder.getBatchNo())) { + return null; } else { return myErpOrder.getCoName() + "批次号不匹配!"; } @@ -286,6 +288,8 @@ public class CheckOrderUtils { return null; } else if (StrUtil.isEmpty(vailOrderEntity.getProductDate()) && StrUtil.isEmpty(myErpOrder.getProductDate())) { return null; + } else if (StrUtil.isEmpty(myErpOrder.getProductDate())) { + return null; } else { return myErpOrder.getCoName() + "生产日期不匹配!"; } @@ -299,6 +303,8 @@ public class CheckOrderUtils { return null; } else if (StrUtil.isEmpty(vailOrderEntity.getExpireDate()) && StrUtil.isEmpty(myErpOrder.getExpireDate())) { return null; + } else if (StrUtil.isEmpty(myErpOrder.getExpireDate())) { + return null; } else { return myErpOrder.getCoName() + "失效日期不匹配!"; } @@ -312,6 +318,8 @@ public class CheckOrderUtils { return null; } else if (StrUtil.isEmpty(vailOrderEntity.getWarehouseCode()) && StrUtil.isEmpty(myErpOrder.getWarehouseCode())) { return null; + } else if (StrUtil.isEmpty(myErpOrder.getWarehouseCode())) { + return null; } else { return myErpOrder.getCoName() + "仓位号不匹配!"; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java index ac13ff1..f2327fa 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java @@ -16,4 +16,5 @@ public class BasicExportStatusEntity { private Date startTime; private Date endTime; private String remark; + private String receiveStatus; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java index 141aeb4..387db8d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java @@ -76,4 +76,7 @@ public class OrderEntity { private String preInBillNo; private String preOutBillNo; + private String wzUploadStatus; + private String wzUploadResult; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java index bd63d58..6d206e8 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java @@ -2,6 +2,8 @@ package com.glxp.sale.admin.entity.inout; import lombok.Data; +import java.util.List; + @Data public class WarehouseEntity { private Long id; @@ -38,6 +40,8 @@ public class WarehouseEntity { private int scanCount; + + public String getSupId() { if (supId == null) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java index d992117..c9e0581 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java @@ -12,4 +12,5 @@ public class BasicExportStatusRequest extends ListPageRequest { private String idDatas; public Integer createType; private String syncTime; + private String receiveStatus; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java index 92f1d1d..7d8df15 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java @@ -26,4 +26,5 @@ public class BussinessTypeFilterRequest extends ListPageRequest { private String code; private String ids; private List actionList; + private Boolean preIn; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/WarehouseQueryRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/WarehouseQueryRequest.java index 9eccdba..ee685a5 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/WarehouseQueryRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/WarehouseQueryRequest.java @@ -3,6 +3,8 @@ package com.glxp.sale.admin.req.inout; import com.glxp.sale.admin.req.ListPageRequest; import lombok.Data; +import java.util.List; + @Data public class WarehouseQueryRequest extends ListPageRequest { @@ -13,4 +15,6 @@ public class WarehouseQueryRequest extends ListPageRequest { private String orderId; private String nameCode; private String relId; + + List actions; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java index 3d24ec3..c95a5f7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java @@ -80,6 +80,9 @@ public interface OrderService { */ List filterOrderForDelete(String billNo); + List filterPreInChange(String billNo); + + /** * 删除单据 * diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java index 950c28d..bfec895 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java @@ -367,6 +367,42 @@ public class OrderServiceImpl implements OrderService { return getAllOrder(orderEntity); } + @Override + public List filterPreInChange(String billNo) { + + List orderEntities = new ArrayList<>(); + String orderId = ""; + StockOrderEntity stockOrderEntity = stockOrderDao.selectByBillNo(billNo); + if (stockOrderEntity == null) { + orderId = billNo; + } else { + orderId = stockOrderEntity.getOrderIdFk(); + } + OrderEntity orderEntity = orderDao.selectByBillNo(orderId); + orderEntities.add(orderEntity); + if (StrUtil.isNotEmpty(orderEntity.getPreInBillNo())) { + String[] priInNo = orderEntity.getPreInBillNo().split(";"); + if (priInNo != null) { + for (int i = 0; i < priInNo.length; i++) { + OrderEntity temp = orderDao.selectByBillNo(priInNo[i]); + orderEntities.add(temp); + } + } + } + + if (StrUtil.isNotEmpty(orderEntity.getPreOutBillNo())) { + String[] priInNo = orderEntity.getPreOutBillNo().split(";"); + if (priInNo != null) { + for (int i = 0; i < priInNo.length; i++) { + OrderEntity temp = orderDao.selectByBillNo(priInNo[i]); + orderEntities.add(temp); + } + } + } + + return orderEntities; + } + //通过源单据查询所有关联的单据数据 public void getLinkedOrderId(String id, Set orderIds) { List list = getOneOrderById(id); diff --git a/api-admin/src/main/resources/application-dev.properties b/api-admin/src/main/resources/application-dev.properties index 1cf90a7..0aa70ca 100644 --- a/api-admin/src/main/resources/application-dev.properties +++ b/api-admin/src/main/resources/application-dev.properties @@ -1,5 +1,5 @@ # \u751F\u4EA7\u73AF\u5883 -server.port=9907 +server.port=9906 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/spms_za?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml index 757abca..3561ede 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml @@ -25,6 +25,11 @@ and #{syncTime} BETWEEN startTime and endTime + + + and receiveStatus = #{receiveStatus} + + ORDER BY updateTime DESC @@ -33,7 +38,7 @@ replace - INTO basic_export_status(id,idDatas,status,`type`,updateTime,scheduleType,startTime,endTime,remark) + INTO basic_export_status(id,idDatas,status,`type`,updateTime,scheduleType,startTime,endTime,remark,receiveStatus) values( #{id}, #{idDatas}, @@ -43,7 +48,8 @@ #{scheduleType}, #{startTime}, #{endTime}, - #{remark} + #{remark}, + #{receiveStatus} ) @@ -52,12 +58,13 @@ idDatas=#{idDatas}, status=#{status}, - type=#{type}, + `type`=#{type}, updateTime=#{updateTime}, scheduleType=#{scheduleType}, startTime=#{startTime}, endTime=#{endTime}, remark=#{remark}, + receiveStatus=#{receiveStatus}, WHERE id = #{id} diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml index 430f3f7..5612ab2 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml @@ -33,6 +33,13 @@ and relId =#{relId} + + and + `action` in + + #{id} + + ORDER BY actDate diff --git a/api-admin/src/main/resources/schemas/schema_v2.1.sql b/api-admin/src/main/resources/schemas/schema_v2.1.sql index e69de29..587b80f 100644 --- a/api-admin/src/main/resources/schemas/schema_v2.1.sql +++ b/api-admin/src/main/resources/schemas/schema_v2.1.sql @@ -0,0 +1,9 @@ + +-- 字段新增 (表名,字段名,字段类型,修改方式(1:新增,2:修改,3:删除) +CALL Pro_Temp_ColumnWork ('basic_export_status','receiveStatus','varchar(255) ', 1); +CALL Pro_Temp_ColumnWork ('io_order','wzUploadStatus','varchar(255) ', 1); +CALL Pro_Temp_ColumnWork ('io_order','wzUploadResult','varchar(255) ', 1); + + + +-- 创建表时必须 create table if not exists 表名 \ No newline at end of file