diff --git a/api-udims/pom.xml b/api-udims/pom.xml index 918bfb3..7ccab1c 100644 --- a/api-udims/pom.xml +++ b/api-udims/pom.xml @@ -150,6 +150,15 @@ gson 2.8.5 + + org.springframework.boot + spring-boot-starter-data-mongodb + + + + + + diff --git a/api-udims/src/main/java/com/glxp/udi/admin/config/MongoConfiguration.java b/api-udims/src/main/java/com/glxp/udi/admin/config/MongoConfiguration.java new file mode 100644 index 0000000..6c8a241 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/config/MongoConfiguration.java @@ -0,0 +1,18 @@ +package com.glxp.udi.admin.config; + +import com.glxp.udi.admin.mongo.utils.MongoPageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.mongodb.core.MongoTemplate; + +@Configuration +public class MongoConfiguration { + @Autowired + private MongoTemplate mongoTemplate; + + @Bean + public MongoPageHelper mongoPageHelper() { + return new MongoPageHelper(mongoTemplate); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/InoutUtils.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/InoutUtils.java index f08ce99..1395681 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/InoutUtils.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/InoutUtils.java @@ -5,15 +5,15 @@ import com.glxp.udi.admin.constant.TypeConstant; import com.glxp.udi.admin.entity.info.SetupEntity; import com.glxp.udi.admin.entity.inout.*; import com.glxp.udi.admin.entity.udid.UdiEntity; +import com.glxp.udi.admin.mongo.service.OrderDetailMdService; +import com.glxp.udi.admin.mongo.service.WarehouseMdService; import com.glxp.udi.admin.req.inout.FilterWarehouseRequest; import com.glxp.udi.admin.service.info.SetupService; -import com.glxp.udi.admin.service.inout.MyErpOrderService; import com.glxp.udi.admin.service.inout.UdiInfoService; import com.glxp.udi.admin.service.inout.UdiRelevanceService; -import com.glxp.udi.admin.service.inout.WarehouseService; import com.glxp.udi.admin.service.receipts.ProductInfoService; import com.glxp.udi.admin.util.FilterUdiUtils; -import com.glxp.udi.admin.util.WarehousBeanUtils; +import org.springframework.beans.BeanUtils; import java.util.ArrayList; import java.util.HashMap; @@ -31,13 +31,15 @@ public class InoutUtils { this.udiUrl = udiUrl; } - public String filterCode(WarehouseService warehouseService, Warehousetemp warehousetemp, SetupService setupService) { + public String filterCode(WarehouseMdService warehouseService, WarehousetempEntity warehousetemp, SetupService setupService) { SetupEntity setupEntity = setupService.selectSetup(); FilterWarehouseRequest filterWarehouseRequest = new FilterWarehouseRequest(); filterWarehouseRequest.setCode(warehousetemp.getCode()); filterWarehouseRequest.setCustomerId(warehousetemp.getCustomerId()); List warehouseEntityList = warehouseService.findByCode(filterWarehouseRequest); - WarehouseEntity warehouseData = new WarehousBeanUtils().tempToEntity(warehousetemp); + + WarehouseEntity warehouseData = new WarehouseEntity(); + BeanUtils.copyProperties(warehousetemp,warehouseData); if (warehouseEntityList == null || warehouseEntityList.size() == 0) { //数据库为null,可以添加 return nullVail(warehousetemp, setupEntity); } @@ -104,7 +106,7 @@ public class InoutUtils { return null; } - public String nullVail(Warehousetemp warehousetemp, SetupEntity setupEntity) { + public String nullVail(WarehousetempEntity warehousetemp, SetupEntity setupEntity) { if (warehousetemp.getAction().equals(TypeConstant.TYPE_PUT_RETURN)) { if (setupEntity.isReturnWareHouseIn()) { return null; @@ -247,7 +249,7 @@ public class InoutUtils { } public void generateConstrastDetail(UdiInfoService udiInfoService, UdiRelevanceService udiRelevanceService, - MyErpOrderService myErpOrderService, + OrderDetailMdService orderDetailMdService, List warehouseEntityList) { if (warehouseEntityList != null && warehouseEntityList.size() > 0) { List udiInfoEntities = new ArrayList<>(); @@ -293,8 +295,9 @@ public class InoutUtils { erpOrderEntity.setPackSpec(erpDetailCodeEntity.getGgxh()); erpOrderEntities.add(erpOrderEntity); } - if (!erpOrderEntities.isEmpty()) - myErpOrderService.insertErpOrders(erpOrderEntities); + if (!erpOrderEntities.isEmpty()){ + orderDetailMdService.insertOrderDetail(erpOrderEntities); + } } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/MyErpOrderController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/MyErpOrderController.java index 067782f..753a79d 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/MyErpOrderController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/MyErpOrderController.java @@ -2,6 +2,7 @@ package com.glxp.udi.admin.controller.inout; import com.github.pagehelper.PageInfo; import com.glxp.udi.admin.entity.inout.ErpOrderEntity; +import com.glxp.udi.admin.mongo.service.OrderDetailMdService; import com.glxp.udi.admin.req.inout.DeleteRequest; import com.glxp.udi.admin.req.inout.FilterErpOrderRequest; import com.glxp.udi.admin.res.PageSimpleResponse; @@ -25,6 +26,28 @@ public class MyErpOrderController { private String ucloudUrl; @Resource MyErpOrderService myErpOrderService; + @Resource + private OrderDetailMdService orderDetailMdService; + + @GetMapping(value = "/warehouse/inout/order/detail") + public BaseResponse orderDetail(FilterErpOrderRequest filterErpOrderRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (filterErpOrderRequest.getOrderId() == null || filterErpOrderRequest.getOrderId().equals("")) { + filterErpOrderRequest.setOrderId("1"); + } + filterErpOrderRequest.setPage(1); + filterErpOrderRequest.setLimit(100); + List erpOrderEntities = orderDetailMdService.filterOrderDetails(filterErpOrderRequest); + return ResultVOUtils.success(erpOrderEntities); + } + + /** + * ------------------------------------------------( + **/ + @GetMapping("/warehouse/getMyErpOrders") public BaseResponse getMyErpOrders(FilterErpOrderRequest filterErpOrderRequest, @@ -60,20 +83,5 @@ public class MyErpOrderController { } } - @GetMapping(value = "/warehouse/inout/order/detail") - public BaseResponse orderDetail(FilterErpOrderRequest filterErpOrderRequest, - BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); - } - if (filterErpOrderRequest.getOrderId() == null || filterErpOrderRequest.getOrderId().equals("")) { - filterErpOrderRequest.setOrderId("1"); - } - filterErpOrderRequest.setPage(1); - filterErpOrderRequest.setLimit(100); - List erpOrderEntities = myErpOrderService.filterMyErpOrder(filterErpOrderRequest); - return ResultVOUtils.success(erpOrderEntities); - } - } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/OrderController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/OrderController.java index d5c344f..bef1e4d 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/OrderController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/OrderController.java @@ -3,11 +3,15 @@ package com.glxp.udi.admin.controller.inout; import com.github.pagehelper.PageInfo; import com.glxp.udi.admin.annotation.AuthRuleAnnotation; import com.glxp.udi.admin.entity.auth.AuthAdmin; -import com.glxp.udi.admin.entity.info.SetupEntity; import com.glxp.udi.admin.entity.inout.ErpOrderEntity; import com.glxp.udi.admin.entity.inout.OrderEntity; +import com.glxp.udi.admin.entity.inout.OrderMdEntity; import com.glxp.udi.admin.entity.inout.WarehouseEntity; import com.glxp.udi.admin.exception.JsonException; +import com.glxp.udi.admin.mongo.service.OrderDetailMdService; +import com.glxp.udi.admin.mongo.service.OrderMdService; +import com.glxp.udi.admin.mongo.service.WarehouseMdService; +import com.glxp.udi.admin.mongo.utils.PageResult; import com.glxp.udi.admin.req.inout.*; import com.glxp.udi.admin.res.PageSimpleResponse; import com.glxp.udi.admin.service.auth.AuthAdminService; @@ -53,6 +57,12 @@ public class OrderController { private SetupService setupService; @Resource AuthAdminService authAdminService; + @Resource + private OrderDetailMdService orderDetailMdService; + @Resource + private OrderMdService orderMdService; + @Resource + private WarehouseMdService warehouseMdService; @AuthRuleAnnotation("") @GetMapping("/warehouse/inout/order/filter") @@ -70,22 +80,21 @@ public class OrderController { AuthAdmin authAdmin = new GetAuthAdminUtil(authAdminService).getAuthAdmin(attributes); orderFilterRequest.setCustomerId(authAdmin.getCustomerId()); orderFilterRequest.setStatus("success"); - List orderEntityList; - if (orderFilterRequest.getCode() != null && !orderFilterRequest.getCode().equals("")) { - FilterWarehouseRequest filterWarehouseRequest = new FilterWarehouseRequest(); - filterWarehouseRequest.setCustomerId(authAdmin.getCustomerId()); - filterWarehouseRequest.setCode(orderFilterRequest.getCode()); - List warehouseEntityList = warehouseService.findByCode(filterWarehouseRequest); - orderEntityList = orderService.filterListByCode(warehouseEntityList); - } else { - orderEntityList = orderService.filterList(orderFilterRequest); - } - - PageInfo pageInfo; - pageInfo = new PageInfo<>(orderEntityList); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(orderEntityList); +// if (orderFilterRequest.getCode() != null && !orderFilterRequest.getCode().equals("")) { +// FilterWarehouseRequest filterWarehouseRequest = new FilterWarehouseRequest(); +// filterWarehouseRequest.setCustomerId(authAdmin.getCustomerId()); +// filterWarehouseRequest.setCode(orderFilterRequest.getCode()); +// List warehouseEntityList = warehouseService.findByCode(filterWarehouseRequest); +// orderEntityList = orderService.filterListByCode(warehouseEntityList); +// } else { +// +// } + + PageResult pageResult = + orderMdService.filterList(orderFilterRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageResult.getTotal()); + pageSimpleResponse.setList(pageResult.getList()); return ResultVOUtils.success(pageSimpleResponse); } @@ -116,6 +125,81 @@ public class OrderController { return ResultVOUtils.success(pageSimpleResponse); } + @PostMapping("warehouse/inout/order/deleteOrder") + public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + orderMdService.deleteOrder(deleteRequest); + orderDetailMdService.deleteOrderDetail(deleteRequest); + warehouseMdService.deleteCode(deleteRequest); + return ResultVOUtils.success("删除成功"); + } + + @AuthRuleAnnotation("") + @GetMapping("admin/warehouse/inout/order/listerror") + public BaseResponse listOrderError(OrderFilterRequest orderFilterRequest) { + orderFilterRequest.setIsError("success"); + PageResult pageResult = + orderMdService.filterList(orderFilterRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageResult.getTotal()); + pageSimpleResponse.setList(pageResult.getList()); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("") + @PostMapping("/warehouse/inout/order/mergeOrder") + public BaseResponse mergeOrder(@RequestBody OrderMergeRequest orderMergeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List orderList = orderMergeRequest.getOrderList(); + + if (orderList != null && orderList.size() > 1) { + for (String orderId : orderList) { + DeleteRequest deleteRequest = new DeleteRequest(); + deleteRequest.setOrderId(orderId); + orderDetailMdService.deleteOrderDetail(deleteRequest); + } + String mainOrder = orderList.get(0); + for (int i = 1; i < orderList.size(); i++) { + warehouseMdService.updateOrderId(orderList.get(i), mainOrder); + DeleteRequest deleteRequest = new DeleteRequest(); + deleteRequest.setOrderId(orderList.get(i)); + orderMdService.deleteOrder(deleteRequest); + } + new Thread(() -> { + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setOrderId(mainOrder); + List transData = warehouseMdService.filterWarehouse(warehouseQueryRequest); + new InoutUtils().generateConstrastDetail(udiInfoService, udiRelevanceService, orderDetailMdService, transData); + }).start(); + } + + + return ResultVOUtils.success("合并成功,后台正在数据转换,请稍后刷新重试!"); + } + + @PostMapping("/warehouse/inout/order/unit") + public BaseResponse updateUnit(@RequestBody @Valid OrderMdEntity orderEntity, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + orderMdService.updateOrder(orderEntity); + warehouseMdService.updateUnit(orderEntity.getOrderId(), orderEntity.getFromCorpId(), orderEntity.getFromCorp()); + + return ResultVOUtils.success("添加成功"); + } + + /** * -----------------------暂不确定---------------------- */ @@ -134,17 +218,6 @@ public class OrderController { return ResultVOUtils.success(pageSimpleResponse); } - @AuthRuleAnnotation("") - @GetMapping("admin/warehouse/inout/order/listerror") - public BaseResponse listOrderError(OrderQueryRequest orderQueryRequest) { - List orderEntityList = orderService.listOrderError(orderQueryRequest); - PageInfo pageInfo; - pageInfo = new PageInfo<>(orderEntityList); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(orderEntityList); - return ResultVOUtils.success(pageSimpleResponse); - } @AuthRuleAnnotation("") @GetMapping("admin/warehouse/inout/order/listRepeat") @@ -176,89 +249,6 @@ public class OrderController { return ResultVOUtils.success("添加成功"); } - @AuthRuleAnnotation("") - @PostMapping("/warehouse/inout/order/mergeOrder") - public BaseResponse mergeOrder(@RequestBody OrderMergeRequest orderMergeRequest, BindingResult bindingResult) { - - if (bindingResult.hasErrors()) { - return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); - } - - List orderList = orderMergeRequest.getOrderList(); - SetupEntity setupEntity = setupService.selectSetup(); - if (!setupEntity.isForbidSameErp()) { - List mergeList = new ArrayList<>(); - if (orderList != null && orderList.size() > 1) { - for (String orderId : orderList) { - FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); - filterErpOrderRequest.setOrderId(orderId); - List erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest); - if (erpOrderEntities != null && erpOrderEntities.size() > 0) { - mergeList.addAll(erpOrderEntities); - } - myErpOrderService.deleteByOrderId(orderId); - - } - String mainOrder = orderList.get(0); - for (int i = 1; i < orderList.size(); i++) { - warehouseService.updateOrderId(orderList.get(i), mainOrder); - orderService.deleteByOrderId(orderList.get(i)); - } - OrderEntity mainOrderEntity = orderService.findById(mainOrder); - List docids = getDocids(mergeList); - String docidStr = ""; - if (docids != null && docids.size() > 0) { - for (String temp : docids) { - docidStr = docidStr + "," + temp; - } - docidStr = docidStr.substring(1); - } - mainOrderEntity.setErpFk(docidStr); - orderService.updateOrder(mainOrderEntity); -// List erpOrderEntities = new UCloudHttpClient(ucloudUrl).getErpOrders(docids, mainOrderEntity.getAction()); -// if (erpOrderEntities != null && erpOrderEntities.size() > 0) { -// List returnOrders = new ContrastErpUtil().transErp(erpOrderEntities, udiRelevanceService, mainOrder); -// myErpOrderService.insertErpOrders(returnOrders); -// List warehouseEntityList = warehouseService.findByReceiptId(mainOrder); -// new ContrastErpUtil().contrastErp(udiInfoService, udiRelevanceService, myErpOrderService, orderService, warehouseEntityList,setupService); -// } else { -// orderService.updateContrastStatus(mainOrder, "error"); -// orderService.updateRemark(mainOrder, "U8Cloud获取ERP单失败"); -// return ResultVOUtils.error(500, "U8Cloud获取ERP单失败"); -// } - } else { - return ResultVOUtils.error(ResultEnum.DATA_ERROR); - } - } else { - if (orderList != null && orderList.size() > 1) { - for (String orderId : orderList) { - FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); - filterErpOrderRequest.setOrderId(orderId); - List erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest); - if (erpOrderEntities != null && erpOrderEntities.size() > 0) { - for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { - if (erpOrderEntity.getDocid() != null) { - return ResultVOUtils.error(500, "已校验过订单不能合并!"); - } - } - } - myErpOrderService.deleteByOrderId(orderId); - } - String mainOrder = orderList.get(0); - for (int i = 1; i < orderList.size(); i++) { - warehouseService.updateOrderId(orderList.get(i), mainOrder); - orderService.deleteByOrderId(orderList.get(i)); - } - new Thread(() -> { - List datas = warehouseService.findByReceiptId(mainOrder); - new InoutUtils().generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, datas); - }).start(); - } - } - - return ResultVOUtils.success("合并成功,后台正在数据转换,请稍后刷新重试!"); - } - public List getDocids(List mergeList) { List docids = new ArrayList<>(); @@ -274,39 +264,6 @@ public class OrderController { return false; } - @PostMapping("warehouse/inout/order/deleteOrder") - public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { - - if (bindingResult.hasErrors()) { - return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); - } - String id = deleteRequest.getId(); - - orderService.deleteById(id); - myErpOrderService.deleteByOrderId(id); - return ResultVOUtils.success("删除成功"); - } - - - @PostMapping("/warehouse/inout/order/unit") - public BaseResponse updateUnit(@RequestBody @Valid OrderEntity orderEntity, - BindingResult bindingResult) { - - if (bindingResult.hasErrors()) { - return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); - } - - boolean b = orderService.updateUnit(orderEntity); - if (!b) { - return ResultVOUtils.error(ResultEnum.NOT_NETWORK); - } - - b = warehouseService.updateUnit(orderEntity.getId(), orderEntity.getFromCorpId(), orderEntity.getFromCorp()); - if (!b) { - return ResultVOUtils.error(ResultEnum.NOT_NETWORK); - } - return ResultVOUtils.success("添加成功"); - } @PostMapping("/warehouse/inout/order/updateExportStatus") public BaseResponse updateExportStatus(@RequestBody UpdateExportStatusRequest updateExportStatusRequest, diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/WareHouseController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/WareHouseController.java index bbf4179..d33d7e5 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/WareHouseController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/inout/WareHouseController.java @@ -3,19 +3,19 @@ package com.glxp.udi.admin.controller.inout; import com.github.pagehelper.PageInfo; import com.glxp.udi.admin.annotation.AuthRuleAnnotation; import com.glxp.udi.admin.entity.auth.AuthAdmin; -import com.glxp.udi.admin.entity.inout.ErpOrderEntity; import com.glxp.udi.admin.entity.inout.WarehouseEntity; -import com.glxp.udi.admin.entity.inout.Warehousetemp; +import com.glxp.udi.admin.entity.inout.WarehousetempEntity; import com.glxp.udi.admin.exception.JsonException; +import com.glxp.udi.admin.mongo.service.WarehouseMdService; +import com.glxp.udi.admin.mongo.service.WarehouseTempMdService; +import com.glxp.udi.admin.mongo.utils.PageResult; import com.glxp.udi.admin.req.inout.*; import com.glxp.udi.admin.res.PageSimpleResponse; import com.glxp.udi.admin.res.inout.WarehouseResponse; import com.glxp.udi.admin.service.auth.AuthAdminService; -import com.glxp.udi.admin.service.info.SetupService; -import com.glxp.udi.admin.service.inout.*; +import com.glxp.udi.admin.service.inout.WarehouseService; import com.glxp.udi.admin.thread.TransInoutService; import com.glxp.udi.admin.util.GetAuthAdminUtil; -import com.glxp.udi.admin.util.WarehousBeanUtils; import com.glxp.udi.common.enums.ResultEnum; import com.glxp.udi.common.res.BaseResponse; import com.glxp.udi.common.util.ResultVOUtils; @@ -30,7 +30,6 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.validation.Valid; -import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -39,17 +38,12 @@ public class WareHouseController { @Resource private WarehouseService warehouseService; @Resource - private OrderService orderService; + private WarehouseMdService warehouseMdService; @Resource - private MyErpOrderService myErpOrderService; + private WarehouseTempMdService warehouseTempMdService; @Resource private TransInoutService transInoutService; - @Resource - private UdiInfoService udiInfoService; - @Resource - private UdiRelevanceService udiRelevanceService; - @Resource - private SetupService setupService; + @Resource AuthAdminService authAdminService; @@ -73,6 +67,24 @@ public class WareHouseController { return ResultVOUtils.success("导入成功"); } + @GetMapping("admin/warehouse/inout/findByOrderId") + public BaseResponse findByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + PageResult pageResult = warehouseMdService.filterWarehouseByPage(warehouseQueryRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageResult.getTotal()); + pageSimpleResponse.setList(pageResult.getList()); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @GetMapping("admin/warehouse/inout/findErrorByOrderId") + public BaseResponse findErrorByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + PageResult pageResult = warehouseTempMdService.filterWarehouseByPage(warehouseQueryRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageResult.getTotal()); + pageSimpleResponse.setList(pageResult.getList()); + return ResultVOUtils.success(pageSimpleResponse); + } /** * -----------------------暂不确定---------------------- @@ -131,22 +143,6 @@ public class WareHouseController { return ResultVOUtils.success(pageSimpleResponse); } - @GetMapping("admin/warehouse/inout/findByOrderId") - public BaseResponse findByOrderId(WarehouseQueryRequest warehouseQueryRequest) { - List warehouseEntityList = warehouseService.findByOrderId(warehouseQueryRequest); - List warehouseResponses = warehouseEntityList.stream().map(item -> - { - WarehouseResponse warehouseResponse = new WarehouseResponse(); - BeanUtils.copyProperties(item, warehouseResponse); - return warehouseResponse; - }).collect(Collectors.toList()); - PageInfo pageInfo; - pageInfo = new PageInfo<>(warehouseEntityList); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(warehouseResponses); - return ResultVOUtils.success(pageSimpleResponse); - } @GetMapping("admin/warehouse/inout/findAllByOrderId") public BaseResponse findAllByOrderId(WarehouseQueryRequest warehouseQueryRequest) { @@ -166,34 +162,6 @@ public class WareHouseController { } - @GetMapping("admin/warehouse/inout/findErrorByOrderId") - public BaseResponse findErrorByOrderId(WarehouseQueryRequest warehouseQueryRequest) { - List warehousetempList = warehouseService.findErrorByOrderId(warehouseQueryRequest); - List warehouseResponses = WarehousBeanUtils.tempsToWarehouseResponse(warehousetempList); - PageInfo pageInfo; - pageInfo = new PageInfo<>(warehousetempList); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(warehouseResponses); - return ResultVOUtils.success(pageSimpleResponse); - } - - - public void updateErpOrderId(List erpOrderEntities, String oldId, String newId) { - if (erpOrderEntities != null) { - List inserts = new ArrayList<>(); - for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { - if (erpOrderEntity.getOrderIdFk().equals(oldId)) { - erpOrderEntity.setOrderIdFk(newId); - inserts.add(erpOrderEntity); - } - } - myErpOrderService.insertErpOrders(inserts); - } - - } - - @PostMapping("/admin/warehouse/inout/save") public BaseResponse save(@RequestBody @Valid WarehouseSaveRequest warehouseSaveRequest, BindingResult bindingResult) { diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/ErpOrderEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/ErpOrderEntity.java index 0ea07c5..65c660f 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/ErpOrderEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/ErpOrderEntity.java @@ -6,22 +6,7 @@ import lombok.Data; public class ErpOrderEntity { - /** - * companyid : 31443 - * docid : 200959 - * iodtlid : 1108752 - * inoutid : 1064084 - * credate : 2020-10-14 10:24:56.0 - * goodsunit : 瓶 - * goodsid : 26 - * lotid : 84392 - * goodsname : 川贝清肺糖浆(120ml) - * companyname : 安徽阜阳医药集团有限公司 - * lotno : 1912198 - * dtlgoodsqty : 4000 - */ - - private long id; + private String id; private String companyid; private String docid; private String iodtlid; @@ -32,9 +17,9 @@ public class ErpOrderEntity { private String goodsname; private String companyname; private String lotno; - private int dtlgoodsqty; + private Integer dtlgoodsqty; private String credate; - private int reCount; + private Integer reCount; private String nameCode; @@ -43,11 +28,11 @@ public class ErpOrderEntity { private String authCode; private String packSpec; private String packRatio; - private int bhzxxsbzsl; - private int zxxsbzbhsydysl; + private Integer bhzxxsbzsl; + private Integer zxxsbzbhsydysl; private String isDownload; private String orderIdFk; - private int count; + private Integer count; private String nameCodes; private String status; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/OrderMdEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/OrderMdEntity.java new file mode 100644 index 0000000..15776c5 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/OrderMdEntity.java @@ -0,0 +1,29 @@ +package com.glxp.udi.admin.entity.inout; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class OrderMdEntity { + + private String id; + private String orderId; + private String action; + private String corpOrderId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date actDate; + private String fromCorpId; + private String actor; + private String mainAction; + private String fromCorp; + private String status; + private String remark; + private String exportStatus; + private String fromType; + private String contrastStatus; + private String erpFk; + private Long customerId; + +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehouseEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehouseEntity.java index 594ca17..2e19c47 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehouseEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehouseEntity.java @@ -14,7 +14,7 @@ public class WarehouseEntity { private Integer wrongCode; private String upperCorpOrderId; private String fromCorpId; - private Long id; + private String id; private String fromCorp; private String orderId; private String batchNo; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehousetempEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehousetempEntity.java index e629701..eea5606 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehousetempEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/inout/WarehousetempEntity.java @@ -11,10 +11,10 @@ public class WarehousetempEntity { private String corpOrderId; private String actor; private String actDate; - private int wrongCode; + private Integer wrongCode; private String upperCorpOrderId; - private String fromCorpID; - private long id; + private String fromCorpId; + private String id; private String fromCorp; private String orderId; private String batchNo; @@ -23,7 +23,8 @@ public class WarehousetempEntity { private String serialNo; private String udi; private Integer count; - private int type; - private int oddCount; + private Integer type; private Long customerId; + + } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/MongoDBClient.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/MongoDBClient.java new file mode 100644 index 0000000..74cba2e --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/MongoDBClient.java @@ -0,0 +1,93 @@ +package com.glxp.udi.admin.mongo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.stereotype.Component; + +import java.util.Collection; +import java.util.List; + +/** + * @Desc TODO MongoDB 工具类 + */ +@Component +public class MongoDBClient { + + @Autowired + private MongoTemplate mongoTemplate; + + /* + * @ClassName MongoDBClient + * @Desc TODO 创建集合,并返回是否创建成功 -2:已存在 / -1:创建失败 / 1:创建成功 + * @Date 2019/4/1 10:59 + * @Version 1.0 + */ + public Integer createCollection(String collectionName){ + // 先判断集合是否存在 + if(mongoTemplate.collectionExists(collectionName)){ + return -2; + }else{ + // 创建一个集合 + mongoTemplate.createCollection(collectionName); + // 判断集合是否存在 + if(mongoTemplate.collectionExists(collectionName)){ + return 1; + }else{ + return -1; + } + } + } + + /* + * @ClassName MongoDBClient + * @Desc TODO 在指定集合中添加数据 + * @Date 2019/4/1 11:12 + * @Version 1.0 + */ + public void add(Collection batchToSave , String collectionName){ + mongoTemplate.insert(batchToSave,collectionName); + } + + /* + * @ClassName MongoDBClient + * @Desc TODO 根据条件和指定集合删除数据 + * @Date 2019/4/1 14:20 + * @Version 1.0 + */ + public void delete(Query query , Object obj , String collectionName){ + mongoTemplate.remove(query, obj.getClass(), collectionName); + } + + /* + * @ClassName MongoDBClient + * @Desc TODO 根据条件更新数据 + * @Date 2019/4/1 14:30 + * @Version 1.0 + */ + public void update(Query query , Update update , Object obj , String collectionName){ + mongoTemplate.updateMulti(query , update , obj.getClass() , collectionName); + } + + /* + * @ClassName MongoDBClient + * @Desc TODO 获取指定集合下的全部数据 + * @Date 2019/4/1 11:18 + * @Version 1.0 + */ + public List getAllByCollectionName(Object obj , String collectionName){ + return mongoTemplate.findAll(obj.getClass(),collectionName); + } + + /* + * @ClassName MongoDBClient + * @Desc TODO 根据条件和集合名称查询数据 + * @Date 2019/4/1 11:31 + * @Version 1.0 + */ + public List getByConditionAndCollectionName(Query query , Object obj , String collectionName){ + return mongoTemplate.find(query, obj.getClass() , collectionName); + } + +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/MongoDBName.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/MongoDBName.java new file mode 100644 index 0000000..ad5da73 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/MongoDBName.java @@ -0,0 +1,9 @@ +package com.glxp.udi.admin.mongo; + +public class MongoDBName { + + public static final String NAME_ORDER = "io_order"; //订单表 + public static final String NAME_CODE_ERROR = "io_code_temp"; //临时码表 + public static final String NAME_CODE = "io_code"; //正式码表 + public static final String NAME_ORDER_DETAIL = "io_order_detail"; //正式码表 +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/OrderDetailMdService.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/OrderDetailMdService.java new file mode 100644 index 0000000..d476883 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/OrderDetailMdService.java @@ -0,0 +1,71 @@ +package com.glxp.udi.admin.mongo.service; + +import com.glxp.udi.admin.entity.inout.ErpOrderEntity; +import com.glxp.udi.admin.mongo.MongoDBName; +import com.glxp.udi.admin.mongo.utils.MongoPageHelper; +import com.glxp.udi.admin.req.inout.DeleteRequest; +import com.glxp.udi.admin.req.inout.FilterErpOrderRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@Service +public class OrderDetailMdService { + @Autowired + private MongoTemplate mongoTemplate; + @Resource + MongoPageHelper mongoPageHelper; + + public List filterOrderDetails(FilterErpOrderRequest filterErpOrderRequest) { + + Query query = new Query(); + if (filterErpOrderRequest.getOrderId() != null && !filterErpOrderRequest.getOrderId().isEmpty()) { + query.addCriteria(Criteria.where("orderIdFk").is(filterErpOrderRequest.getOrderId())); + } + if (filterErpOrderRequest.getCustomerId() != null) { + query.addCriteria(Criteria.where("customerId").is(filterErpOrderRequest.getCustomerId())); + } + return mongoTemplate.find(query, ErpOrderEntity.class, MongoDBName.NAME_ORDER_DETAIL); + } + + public void insertOrderDetail(List erpOrderEntities) { + if (erpOrderEntities != null) { + Collection warehouseEntityCollection = new ArrayList<>(); + warehouseEntityCollection.addAll(erpOrderEntities); + mongoTemplate.insert(warehouseEntityCollection, MongoDBName.NAME_ORDER_DETAIL); + } + } + + public void deleteOrderDetail(DeleteRequest deleteRequest) { + Query query = new Query(); + if (deleteRequest.getId() != null) { + query.addCriteria(Criteria.where("id").is(deleteRequest.getId())); + } + if (deleteRequest.getOrderId() != null) { + query.addCriteria(Criteria.where("orderIdFk").is(deleteRequest.getOrderId())); + } + mongoTemplate.remove(query, ErpOrderEntity.class, MongoDBName.NAME_ORDER_DETAIL); + } + + public void updateOrderDetail(ErpOrderEntity erpOrderEntity) { + Query query = new Query(); + query.addCriteria(new Criteria().and("id").is(erpOrderEntity.getId())); + Update update = new Update(); + + if (erpOrderEntity.getCount() != null) { + update.set("count", erpOrderEntity.getCount()); + } + if (erpOrderEntity.getReCount() != null) { + update.set("reCount", erpOrderEntity.getReCount()); + } + mongoTemplate.updateMulti(query, update, MongoDBName.NAME_ORDER_DETAIL); + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/OrderMdService.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/OrderMdService.java new file mode 100644 index 0000000..2dd46cf --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/OrderMdService.java @@ -0,0 +1,145 @@ +package com.glxp.udi.admin.mongo.service; + +import com.glxp.udi.admin.entity.inout.OrderMdEntity; +import com.glxp.udi.admin.mongo.MongoDBName; +import com.glxp.udi.admin.mongo.utils.MongoPageHelper; +import com.glxp.udi.admin.mongo.utils.PageResult; +import com.glxp.udi.admin.req.inout.DeleteRequest; +import com.glxp.udi.admin.req.inout.OrderFilterRequest; +import com.glxp.udi.admin.util.DateUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; + +@Service +public class OrderMdService { + + @Autowired + private MongoTemplate mongoTemplate; + @Resource + MongoPageHelper mongoPageHelper; + + private static final Logger log = LoggerFactory.getLogger(OrderMdService.class); + + public PageResult filterList(OrderFilterRequest orderFilterRequest) { + Query query = new Query(); + if (orderFilterRequest.getId() != null && !orderFilterRequest.getId().isEmpty()) { + query.addCriteria(Criteria.where("id").is(orderFilterRequest.getId())); + } + if (orderFilterRequest.getMainAction() != null && !orderFilterRequest.getMainAction().isEmpty()) { + query.addCriteria(Criteria.where("mainAction").is(orderFilterRequest.getMainAction())); + } + if (orderFilterRequest.getAction() != null && !orderFilterRequest.getAction().isEmpty()) { + query.addCriteria(Criteria.where("action").is(orderFilterRequest.getAction())); + } + if (orderFilterRequest.getAction() == null || orderFilterRequest.getAction().isEmpty()) { + query.addCriteria(Criteria.where("action").ne("StockCheck")); + } + if (orderFilterRequest.getStatus() != null && !orderFilterRequest.getStatus().isEmpty()) { + query.addCriteria(Criteria.where("status").is(orderFilterRequest.getStatus())); + } + if (orderFilterRequest.getExportStatus() != null && !orderFilterRequest.getExportStatus().isEmpty()) { + query.addCriteria(Criteria.where("exportStatus").is(orderFilterRequest.getExportStatus())); + } + if (orderFilterRequest.getCustomerId() != null) { + if (orderFilterRequest.getStartTime() != null && !orderFilterRequest.getStartTime().isEmpty() + && orderFilterRequest.getEndTime() != null && !orderFilterRequest.getEndTime().isEmpty()) { + Date sdate, edate = null; + if (orderFilterRequest.getStartTime().contains("T")) { + sdate = DateUtil.convertTimeFormat(orderFilterRequest.getStartTime()); + } else { + sdate = DateUtil.parseDate(orderFilterRequest.getStartTime()); + } + if (orderFilterRequest.getEndTime().contains("T")) { + edate = DateUtil.convertTimeFormat(orderFilterRequest.getEndTime()); + } else { + edate = DateUtil.parseDate(orderFilterRequest.getEndTime()); + } + query.addCriteria(Criteria.where("customerId").is(orderFilterRequest.getCustomerId()).andOperator(Criteria.where("actDate").gte(DateUtil.dateToISODate(sdate) + ), Criteria.where("actDate").lt(DateUtil.dateToISODate(edate)))); + } else + query.addCriteria(Criteria.where("customerId").is(orderFilterRequest.getCustomerId())); + } + + + if (orderFilterRequest.getIsError() != null) { + query.addCriteria(Criteria.where("status").ne(orderFilterRequest.getIsError())); + } + + return mongoPageHelper.pageQuery(query, OrderMdEntity.class, + orderFilterRequest.getLimit(), orderFilterRequest.getPage(), orderFilterRequest.getLastId(), MongoDBName.NAME_ORDER); + + } + + public void updateOrder(OrderMdEntity orderMdEntity) { + Query query = new Query(); + if (orderMdEntity.getOrderId() != null && !orderMdEntity.getOrderId().isEmpty()) { + query.addCriteria(new Criteria().and("orderId").is(orderMdEntity.getOrderId())); + } else if (orderMdEntity.getId() != null && !orderMdEntity.getId().isEmpty()) { + query.addCriteria(new Criteria().and("id").is(orderMdEntity.getId())); + } else { + log.error("更新失败,未指定orderId"); + return; + } + + Update update = new Update(); + if (orderMdEntity.getId() != null) { + update.set("fromCorp", orderMdEntity.getFromCorp()); + } + if (orderMdEntity.getFromCorp() != null) { + update.set("fromCorp", orderMdEntity.getFromCorp()); + } + if (orderMdEntity.getFromCorpId() != null) { + update.set("fromCorpId", orderMdEntity.getFromCorpId()); + } + if (orderMdEntity.getActDate() != null) { + update.set("actDate", orderMdEntity.getActDate()); + } + if (orderMdEntity.getStatus() != null) { + update.set("status", orderMdEntity.getStatus()); + } + if (orderMdEntity.getRemark() != null) { + update.set("remark", orderMdEntity.getRemark()); + } + if (orderMdEntity.getExportStatus() != null) { + update.set("exportStatus", orderMdEntity.getExportStatus()); + } + if (orderMdEntity.getContrastStatus() != null) { + update.set("contrastStatus", orderMdEntity.getContrastStatus()); + } + if (orderMdEntity.getErpFk() != null) { + update.set("erpFk", orderMdEntity.getErpFk()); + } + mongoTemplate.updateMulti(query, update, MongoDBName.NAME_ORDER); + } + + public void deleteOrder(DeleteRequest deleteRequest) { + Query query = new Query(); + if (deleteRequest.getId() != null) { + query.addCriteria(Criteria.where("id").is(deleteRequest.getId())); + } + if (deleteRequest.getOrderId() != null) { + query.addCriteria(Criteria.where("orderId").is(deleteRequest.getOrderId())); + } + mongoTemplate.remove(query, OrderMdEntity.class, MongoDBName.NAME_ORDER); + } + + + public void insertOrder(OrderMdEntity orderMdEntity) { + if (orderMdEntity != null) { + Collection orderMdEntities = new ArrayList<>(); + orderMdEntities.add(orderMdEntity); + mongoTemplate.insert(orderMdEntities, MongoDBName.NAME_ORDER); + } + } +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/WarehouseMdService.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/WarehouseMdService.java new file mode 100644 index 0000000..eec4c81 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/WarehouseMdService.java @@ -0,0 +1,128 @@ +package com.glxp.udi.admin.mongo.service; + +import com.glxp.udi.admin.entity.inout.WarehouseEntity; +import com.glxp.udi.admin.mongo.MongoDBName; +import com.glxp.udi.admin.mongo.utils.MongoPageHelper; +import com.glxp.udi.admin.mongo.utils.PageResult; +import com.glxp.udi.admin.req.inout.DeleteRequest; +import com.glxp.udi.admin.req.inout.FilterWarehouseRequest; +import com.glxp.udi.admin.req.inout.WarehouseQueryRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@Service +public class WarehouseMdService { + + @Autowired + private MongoTemplate mongoTemplate; + @Resource + MongoPageHelper mongoPageHelper; + + + public PageResult filterWarehouseByPage(WarehouseQueryRequest warehouseQueryRequest) { + + Query query = new Query(); + if (warehouseQueryRequest.getCode() != null && !warehouseQueryRequest.getCode().isEmpty()) { + query.addCriteria(Criteria.where("code").is(warehouseQueryRequest.getCode())); + } + if (warehouseQueryRequest.getCorpOrderId() != null && !warehouseQueryRequest.getCorpOrderId().isEmpty()) { + query.addCriteria(Criteria.where("corpOrderId").is(warehouseQueryRequest.getCorpOrderId())); + } + if (warehouseQueryRequest.getOrderId() != null && !warehouseQueryRequest.getOrderId().isEmpty()) { + query.addCriteria(Criteria.where("orderId").is(warehouseQueryRequest.getOrderId())); + } + if (warehouseQueryRequest.getCustomerId() != null) { + query.addCriteria(Criteria.where("customerId").is(warehouseQueryRequest.getCustomerId())); + } + return mongoPageHelper.pageQuery(query, WarehouseEntity.class, + warehouseQueryRequest.getLimit(), warehouseQueryRequest.getPage(), warehouseQueryRequest.getLastId(), MongoDBName.NAME_CODE); + } + + public List filterWarehouse(WarehouseQueryRequest warehouseQueryRequest) { + + Query query = new Query(); + if (warehouseQueryRequest.getCode() != null && !warehouseQueryRequest.getCode().isEmpty()) { + query.addCriteria(Criteria.where("code").is(warehouseQueryRequest.getCode())); + } + if (warehouseQueryRequest.getCorpOrderId() != null && !warehouseQueryRequest.getCorpOrderId().isEmpty()) { + query.addCriteria(Criteria.where("corpOrderId").is(warehouseQueryRequest.getCorpOrderId())); + } + if (warehouseQueryRequest.getOrderId() != null && !warehouseQueryRequest.getOrderId().isEmpty()) { + query.addCriteria(Criteria.where("orderId").is(warehouseQueryRequest.getOrderId())); + } + if (warehouseQueryRequest.getCustomerId() != null) { + query.addCriteria(Criteria.where("customerId").is(warehouseQueryRequest.getCustomerId())); + } + return mongoTemplate.find(query, WarehouseEntity.class, MongoDBName.NAME_CODE); + } + + + public void insertWarehouses(List warehouseEntities) { + if (warehouseEntities != null) { + Collection warehouseEntityCollection = new ArrayList<>(); + warehouseEntityCollection.addAll(warehouseEntities); + mongoTemplate.insert(warehouseEntityCollection, MongoDBName.NAME_CODE); + } + } + + + public List findByCode(FilterWarehouseRequest filterWarehouseRequest) { + Query query = new Query(); + query.addCriteria( + Criteria.where("customerId").is(filterWarehouseRequest.getCustomerId()) + .and("code").is(filterWarehouseRequest.getCode()) + ); + return mongoTemplate.find(query, WarehouseEntity.class, MongoDBName.NAME_CODE); + } + + + public List searchCode(String code, Long customerId) { + Query query = new Query(); + query.addCriteria( + Criteria.where("customerId").is(customerId) + .and("code").is(code) + .and("action").ne("StockCheck") + ); + return mongoTemplate.find(query, WarehouseEntity.class, MongoDBName.NAME_CODE); + } + + public void updateUnit(String orderId, String fromCorpId, String fromCorp) { + + Query query = new Query(); + query.addCriteria(new Criteria().and("orderId").is(orderId)); + Update update = new Update(); + update.set("fromCorp", fromCorp); + update.set("fromCorpId", fromCorpId); + mongoTemplate.updateMulti(query, update, MongoDBName.NAME_CODE); + } + + public void updateOrderId(String orderId, String newOrderId) { + + Query query = new Query(); + query.addCriteria(new Criteria().and("orderId").is(orderId)); + Update update = new Update(); + update.set("orderId", newOrderId); + mongoTemplate.updateMulti(query, update, MongoDBName.NAME_CODE); + } + + public void deleteCode(DeleteRequest deleteRequest) { + Query query = new Query(); + if (deleteRequest.getId() != null) { + query.addCriteria(Criteria.where("id").is(deleteRequest.getId())); + } + if (deleteRequest.getOrderId() != null) { + query.addCriteria(Criteria.where("orderId").is(deleteRequest.getOrderId())); + } + mongoTemplate.remove(query, WarehouseEntity.class, MongoDBName.NAME_CODE); + } + +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/WarehouseTempMdService.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/WarehouseTempMdService.java new file mode 100644 index 0000000..08397e7 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/service/WarehouseTempMdService.java @@ -0,0 +1,103 @@ +package com.glxp.udi.admin.mongo.service; + +import com.glxp.udi.admin.entity.inout.WarehouseEntity; +import com.glxp.udi.admin.entity.inout.WarehousetempEntity; +import com.glxp.udi.admin.mongo.MongoDBName; +import com.glxp.udi.admin.mongo.utils.MongoPageHelper; +import com.glxp.udi.admin.mongo.utils.PageResult; +import com.glxp.udi.admin.req.inout.DeleteRequest; +import com.glxp.udi.admin.req.inout.WarehouseQueryRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@Service +public class WarehouseTempMdService { + @Autowired + private MongoTemplate mongoTemplate; + @Resource + MongoPageHelper mongoPageHelper; + + + public PageResult filterWarehouseByPage(WarehouseQueryRequest warehouseQueryRequest) { + + Query query = new Query(); + if (warehouseQueryRequest.getCode() != null && !warehouseQueryRequest.getCode().isEmpty()) { + query.addCriteria(Criteria.where("code").is(warehouseQueryRequest.getCode())); + } + if (warehouseQueryRequest.getCorpOrderId() != null && !warehouseQueryRequest.getCorpOrderId().isEmpty()) { + query.addCriteria(Criteria.where("corpOrderId").is(warehouseQueryRequest.getCorpOrderId())); + } + if (warehouseQueryRequest.getOrderId() != null && !warehouseQueryRequest.getOrderId().isEmpty()) { + query.addCriteria(Criteria.where("orderId").is(warehouseQueryRequest.getOrderId())); + } + if (warehouseQueryRequest.getCustomerId() != null) { + query.addCriteria(Criteria.where("customerId").is(warehouseQueryRequest.getCustomerId())); + } + return mongoPageHelper.pageQuery(query, WarehousetempEntity.class, + warehouseQueryRequest.getLimit(), warehouseQueryRequest.getPage(), warehouseQueryRequest.getLastId(), MongoDBName.NAME_CODE_ERROR); + } + + public List filterWarehouse(WarehouseQueryRequest warehouseQueryRequest) { + + Query query = new Query(); + if (warehouseQueryRequest.getCode() != null && !warehouseQueryRequest.getCode().isEmpty()) { + query.addCriteria(Criteria.where("code").is(warehouseQueryRequest.getCode())); + } + if (warehouseQueryRequest.getCorpOrderId() != null && !warehouseQueryRequest.getCorpOrderId().isEmpty()) { + query.addCriteria(Criteria.where("corpOrderId").is(warehouseQueryRequest.getCorpOrderId())); + } + if (warehouseQueryRequest.getOrderId() != null && !warehouseQueryRequest.getOrderId().isEmpty()) { + query.addCriteria(Criteria.where("orderId").is(warehouseQueryRequest.getOrderId())); + } + if (warehouseQueryRequest.getCustomerId() != null) { + query.addCriteria(Criteria.where("customerId").is(warehouseQueryRequest.getCustomerId())); + } + return mongoTemplate.find(query, WarehousetempEntity.class, MongoDBName.NAME_CODE_ERROR); + } + + public List findTempByOrderId(String orderId) { + Query query = new Query(Criteria.where("orderId").is(orderId)); + List result = mongoTemplate.find(query, WarehousetempEntity.class, MongoDBName.NAME_CODE_ERROR); + return result; + } + + public void insertTempWarehouses(List warehouseEntities) { + if (warehouseEntities != null) { + Collection warehousetempEntityCollection = new ArrayList<>(); + warehousetempEntityCollection.addAll(warehouseEntities); + mongoTemplate.insert(warehousetempEntityCollection, MongoDBName.NAME_CODE_ERROR); + } + } + + public void deleteTempWarehouses(List ids) { + if (ids != null) { + for (String id : ids) { + Query query = new Query(); + query.addCriteria(Criteria.where("id").is(id)); + mongoTemplate.remove(query, MongoDBName.NAME_CODE_ERROR); + } + } + } + + + public void deleteCode(DeleteRequest deleteRequest) { + Query query = new Query(); + if (deleteRequest.getId() != null) { + query.addCriteria(Criteria.where("id").is(deleteRequest.getId())); + } + if (deleteRequest.getOrderId() != null) { + query.addCriteria(Criteria.where("orderId").is(deleteRequest.getOrderId())); + } + mongoTemplate.remove(query, WarehouseEntity.class, MongoDBName.NAME_CODE_ERROR); + } + + +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/utils/MongoPageHelper.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/utils/MongoPageHelper.java new file mode 100644 index 0000000..f7a1a1e --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/utils/MongoPageHelper.java @@ -0,0 +1,109 @@ +package com.glxp.udi.admin.mongo.utils; + +import org.apache.commons.lang3.StringUtils; +import org.bson.types.ObjectId; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Direction; +import org.springframework.data.domain.Sort.Order; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; + +import java.util.Collections; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * MongoDB分页插件,需要结合Spring-data使用. + * + * @author Ryan Miao at 2018-06-07 15:19 + **/ +public class MongoPageHelper { + + private static final int FIRST_PAGE_NUM = 1; + private static final String ID = "_id"; + private final MongoTemplate mongoTemplate; + + public MongoPageHelper(MongoTemplate mongoTemplate) { + this.mongoTemplate = mongoTemplate; + } + + + /** + * 分页查询,直接返回集合类型的结果. + * + * @see MongoPageHelper#pageQuery(Query, + * Class, Integer, Integer, Function, + * String) + */ + public PageResult pageQuery(Query query, Class entityClass, Integer pageSize, + Integer pageNum, String tableName) { + return pageQuery(query, entityClass, pageSize, pageNum, Function.identity(), null, tableName); + } + + /** + * 分页查询,不考虑条件分页,直接使用skip-limit来分页. + * + * @see MongoPageHelper#pageQuery(Query, + * Class, Integer, Integer, Function, + * String) + */ + public PageResult pageQuery(Query query, Class entityClass, + Integer pageSize, Integer pageNum, Function mapper, String tableName) { + return pageQuery(query, entityClass, pageSize, pageNum, mapper, null); + } + + public PageResult pageQuery(Query query, Class entityClass, Integer pageSize, + Integer pageNum, String lastId, String tableName) { + return pageQuery(query, entityClass, pageSize, pageNum, Function.identity(), null, tableName); + } + + /** + * 分页查询. + * + * @param query Mongo Query对象,构造你自己的查询条件. + * @param entityClass Mongo collection定义的entity class,用来确定查询哪个集合. + * @param mapper 映射器,你从db查出来的list的元素类型是entityClass, 如果你想要转换成另一个对象,比如去掉敏感字段等,可以使用mapper来决定如何转换. + * @param pageSize 分页的大小. + * @param pageNum 当前页. + * @param lastId 条件分页参数, 区别于skip-limit,采用find(_id>lastId).limit分页. + * 如果不跳页,像朋友圈,微博这样下拉刷新的分页需求,需要传递上一页的最后一条记录的ObjectId。 如果是null,则返回pageNum那一页. + * @param collection定义的class类型. + * @param 最终返回时,展现给页面时的一条记录的类型。 + * @return PageResult,一个封装page信息的对象. + */ + public PageResult pageQuery(Query query, Class entityClass, + Integer pageSize, Integer pageNum, Function mapper, String lastId, String tableName) { + //分页逻辑 + long total = mongoTemplate.count(query, entityClass,tableName); + final Integer pages = (int) Math.ceil(total / (double) pageSize); + if (pageNum <= 0 || pageNum > pages) { + pageNum = FIRST_PAGE_NUM; + } + final Criteria criteria = new Criteria(); + if (StringUtils.isNotBlank(lastId)) { + if (pageNum != FIRST_PAGE_NUM) { + criteria.and(ID).gt(new ObjectId(lastId)); + } + query.limit(pageSize); + } else { + int skip = pageSize * (pageNum - 1); + query.skip(skip).limit(pageSize); + } + + final List entityList = mongoTemplate + .find(query.addCriteria(criteria) + .with(new Sort(Collections.singletonList(new Order(Direction.ASC, ID)))), + entityClass, tableName); + + final PageResult pageResult = new PageResult<>(); + pageResult.setTotal(total); + pageResult.setPages(pages); + pageResult.setPageSize(pageSize); + pageResult.setPageNum(pageNum); + pageResult.setList(entityList.stream().map(mapper).collect(Collectors.toList())); + return pageResult; + } + +} \ No newline at end of file diff --git a/api-udims/src/main/java/com/glxp/udi/admin/mongo/utils/PageResult.java b/api-udims/src/main/java/com/glxp/udi/admin/mongo/utils/PageResult.java new file mode 100644 index 0000000..5f82eb8 --- /dev/null +++ b/api-udims/src/main/java/com/glxp/udi/admin/mongo/utils/PageResult.java @@ -0,0 +1,44 @@ +package com.glxp.udi.admin.mongo.utils; + +import lombok.Data; + +import java.util.List; + +/** + * 分页结果. + * + * @author Ryan + */ +@Data +//@AllArgsConstructor +//@NoArgsConstructor +//@JsonInclude(Include.NON_NULL) +public class PageResult { + + /** + * 页码,从1开始 + */ + private Integer pageNum; + + /** + * 页面大小 + */ + private Integer pageSize; + + + /** + * 总数 + */ + private Long total; + + /** + * 总页数 + */ + private Integer pages; + + /** + * 数据 + */ + private List list; + +} diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/DeleteRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/DeleteRequest.java index 012e4a9..8ca7e7b 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/DeleteRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/DeleteRequest.java @@ -7,5 +7,7 @@ public class DeleteRequest { String id; Long customerId; + String orderId; + String orderIdFk; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/FilterErpOrderRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/FilterErpOrderRequest.java index 181413a..ab587eb 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/FilterErpOrderRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/FilterErpOrderRequest.java @@ -18,6 +18,7 @@ public class FilterErpOrderRequest extends ListPageRequest { private String billAction; private String billcode; private String fbillflag; + Long customerId; List orderIds; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/OrderFilterRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/OrderFilterRequest.java index 53674f0..ec92003 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/OrderFilterRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/OrderFilterRequest.java @@ -19,5 +19,7 @@ public class OrderFilterRequest extends ListPageRequest { private String endTime; private String stockCheckFk; private Long customerId; + private String lastId; + private String isError; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/PostOrderRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/PostOrderRequest.java index a04173d..249431c 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/PostOrderRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/PostOrderRequest.java @@ -1,6 +1,6 @@ package com.glxp.udi.admin.req.inout; -import com.glxp.udi.admin.entity.inout.WarehouseEntity; +import com.glxp.udi.admin.entity.inout.WarehousetempEntity; import lombok.Data; import java.util.List; @@ -19,7 +19,7 @@ public class PostOrderRequest { public static class PostOrder { public List erpOrders; - List codes; + List codes; private String billType; private String orderId; @@ -57,11 +57,11 @@ public class PostOrderRequest { this.erpOrders = erpOrders; } - public List getCodes() { + public List getCodes() { return codes; } - public void setCodes(List codes) { + public void setCodes(List codes) { this.codes = codes; } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/WarehouseQueryRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/WarehouseQueryRequest.java index c35c937..a784a77 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/inout/WarehouseQueryRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/inout/WarehouseQueryRequest.java @@ -7,6 +7,8 @@ import lombok.Data; public class WarehouseQueryRequest extends ListPageRequest { private String corpOrderId; + private String orderId; private String code; private Long customerId; + private String lastId; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/thread/TransInoutService.java b/api-udims/src/main/java/com/glxp/udi/admin/thread/TransInoutService.java index 4f0f13c..d0bdded 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/thread/TransInoutService.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/thread/TransInoutService.java @@ -1,40 +1,43 @@ package com.glxp.udi.admin.thread; import com.glxp.udi.admin.controller.inout.InoutUtils; -import com.glxp.udi.admin.entity.inout.ErpOrderEntity; -import com.glxp.udi.admin.entity.inout.OrderEntity; +import com.glxp.udi.admin.entity.inout.OrderMdEntity; import com.glxp.udi.admin.entity.inout.WarehouseEntity; -import com.glxp.udi.admin.entity.inout.Warehousetemp; +import com.glxp.udi.admin.entity.inout.WarehousetempEntity; +import com.glxp.udi.admin.mongo.service.OrderDetailMdService; +import com.glxp.udi.admin.mongo.service.OrderMdService; +import com.glxp.udi.admin.mongo.service.WarehouseMdService; +import com.glxp.udi.admin.mongo.service.WarehouseTempMdService; import com.glxp.udi.admin.req.inout.CommitRequest; -import com.glxp.udi.admin.req.inout.FilterErpOrderRequest; -import com.glxp.udi.admin.req.inout.OrderFilterRequest; +import com.glxp.udi.admin.req.inout.DeleteRequest; import com.glxp.udi.admin.req.inout.PostOrderRequest; +import com.glxp.udi.admin.req.inout.WarehouseQueryRequest; import com.glxp.udi.admin.service.info.SetupService; -import com.glxp.udi.admin.service.inout.*; +import com.glxp.udi.admin.service.inout.MyErpOrderService; +import com.glxp.udi.admin.service.inout.UdiInfoService; +import com.glxp.udi.admin.service.inout.UdiRelevanceService; import com.glxp.udi.admin.service.receipts.MipsBarcodeService; import com.glxp.udi.admin.service.receipts.ProductInfoService; import com.glxp.udi.admin.service.receipts.ProductService; -import com.glxp.udi.admin.util.WarehousBeanUtils; +import com.glxp.udi.admin.util.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Date; import java.util.List; -import java.util.Map; +import java.util.stream.Collectors; @Service public class TransInoutService { private static final Logger logger = LoggerFactory.getLogger(TransInoutService.class); - @Resource - private WarehouseService warehouseService; - @Resource - private OrderService orderService; + @Resource private MipsBarcodeService mipsBarcodeService; @Resource @@ -54,6 +57,18 @@ public class TransInoutService { @Value("${UDI_SERVER_URL}") private String udiUrl; + + @Resource + private OrderMdService orderService; + + @Resource + private WarehouseTempMdService warehouseTempMdService; + + @Resource + private WarehouseMdService warehouseMdService; + @Resource + private OrderDetailMdService orderDetailMdService; + @Async public void transInout(PostOrderRequest postOrderRequest, long customerId) { @@ -61,57 +76,51 @@ public class TransInoutService { if (postOrders != null && postOrders.size() > 0) { for (int i = 0; i < postOrders.size(); i++) { PostOrderRequest.PostOrder postOrder = postOrders.get(i); - List warehouseEntityList = postOrder.getCodes(); - List warehousetempList = new WarehousBeanUtils().entityToTemp(warehouseEntityList, customerId); + List warehousetempList = postOrder.getCodes(); if (warehousetempList != null && warehousetempList.size() > 0) { - Warehousetemp warehouseEntity = warehousetempList.get(0); + WarehousetempEntity warehousetempEntity = warehousetempList.get(0); String orderId = System.currentTimeMillis() + i + ""; - OrderEntity orderSaveRequest = new OrderEntity(); - orderSaveRequest.setId(orderId); - if (warehouseEntity.getActdate() != null) { - orderSaveRequest.setActDate(warehouseEntity.getActdate()); - } + OrderMdEntity orderSaveRequest = new OrderMdEntity(); + orderSaveRequest.setOrderId(orderId); + Date actDate = DateUtil.parseDate(warehousetempEntity.getActDate()); + orderSaveRequest.setActDate(DateUtil.dateToISODate(actDate)); orderSaveRequest.setCustomerId(customerId); - orderSaveRequest.setAction(warehouseEntity.getAction()); - orderSaveRequest.setActor(warehouseEntity.getActor()); - orderSaveRequest.setCorpOrderId(warehouseEntity.getCorporderid()); - orderSaveRequest.setFromCorpId(warehouseEntity.getFromcorpid()); - orderSaveRequest.setMainAction(warehouseEntity.getMainaction()); - orderSaveRequest.setFromCorp(warehouseEntity.getFromcorp()); + orderSaveRequest.setAction(warehousetempEntity.getAction()); + orderSaveRequest.setActor(warehousetempEntity.getActor()); + orderSaveRequest.setCorpOrderId(warehousetempEntity.getCorpOrderId()); + orderSaveRequest.setFromCorpId(warehousetempEntity.getFromCorpId()); + orderSaveRequest.setMainAction(warehousetempEntity.getMainAction()); + orderSaveRequest.setFromCorp(warehousetempEntity.getFromCorp()); orderSaveRequest.setFromType("手持终端"); orderSaveRequest.setStatus("process"); orderSaveRequest.setExportStatus("未上传"); - orderSaveRequest.setStockCheckFk(postOrder.getStockIdFk()); - orderSaveRequest.setSignStatus("0"); - List docidsList = postOrder.getErpOrders(); - String docidStr = ""; - if (docidsList != null) { - for (String key : docidsList) { - docidStr = docidStr + "," + key; - } - if (docidStr.length() > 1) { - docidStr = docidStr.substring(1); - orderSaveRequest.setErpFk(docidStr); - } - } - orderService.insertOrder(orderSaveRequest); for (int index = 0; index < warehousetempList.size(); index++) { - warehousetempList.get(index).setOrderid(orderId); + warehousetempList.get(index).setOrderId(orderId); } - warehouseService.insertTempWarehouses(warehousetempList); - List filterList = warehousetempList; - List insertList = new ArrayList<>(); + warehouseTempMdService.insertTempWarehouses(warehousetempList); + List filterList = warehousetempList; + List insertList = new ArrayList<>(); + + //更新状态,正在处理 + OrderMdEntity tempEntity = new OrderMdEntity(); + tempEntity.setOrderId(filterList.get(0).getOrderId()); + tempEntity.setRemark("正在处理"); + orderService.updateOrder(tempEntity); + String result; - orderService.updateRemark(filterList.get(0).getOrderid(), "正在处理"); for (int j = 0; j < filterList.size(); j++) { - Warehousetemp warehousetemp = filterList.get(j); - result = new InoutUtils().filterCode(warehouseService, warehousetemp, setupService); + WarehousetempEntity warehousetemp = filterList.get(j); + result = new InoutUtils().filterCode(warehouseMdService, warehousetemp, setupService); if (result == null) { insertList.add(warehousetemp); } else { - orderService.updateOrderStatus(warehousetemp.getOrderid(), "error"); - orderService.updateRemark(warehousetemp.getOrderid(), result); + //更新状态,失败 + OrderMdEntity tempEntity1 = new OrderMdEntity(); + tempEntity1.setOrderId(filterList.get(0).getOrderId()); + tempEntity1.setStatus("error"); + tempEntity1.setRemark(result); + orderService.updateOrder(tempEntity1); insertList.clear(); break; } @@ -119,18 +128,24 @@ public class TransInoutService { postOrders.get(i).setOrderId(orderId); if (insertList.size() > 0) { - orderId = insertList.get(0).getOrderid(); - warehouseService.insertWarehouses(new WarehousBeanUtils().tempsToEntitys(insertList)); - Warehousetemp warehousetemp = insertList.get(0); - CommitRequest commitRequest = new CommitRequest(); - commitRequest.setOrderId(warehousetemp.getOrderid()); - List warehousetemps = warehouseService.findTempByOrderId(commitRequest); - orderService.updateOrderStatus(orderId, "success"); - List ids = new ArrayList<>(); - for (Warehousetemp w : warehousetemps) { - ids.add(w.getId()); - } - warehouseService.deleteTempWarehouses(ids); + orderId = insertList.get(0).getOrderId(); + List warehouseEntities = insertList.stream().map(e -> { + WarehouseEntity warehouseEntity = new WarehouseEntity(); + BeanUtils.copyProperties(e, warehouseEntity); + return warehouseEntity; + }).collect(Collectors.toList()); + warehouseMdService.insertWarehouses(warehouseEntities); + + //更新状态,成功 + OrderMdEntity tempEntity2 = new OrderMdEntity(); + tempEntity2.setOrderId(filterList.get(0).getOrderId()); + tempEntity2.setStatus("success"); + orderService.updateOrder(tempEntity2); + + //删除零时表数据 + DeleteRequest deleteRequest = new DeleteRequest(); + deleteRequest.setOrderId(orderId); + warehouseTempMdService.deleteCode(deleteRequest); insertList.clear(); } } @@ -139,8 +154,10 @@ public class TransInoutService { //生成对照表 for (int i = 0; i < postOrders.size(); i++) { PostOrderRequest.PostOrder postOrder = postOrders.get(i); - List transData = warehouseService.findByReceiptId(postOrder.getOrderId()); - new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, transData); + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setOrderId(postOrder.getOrderId()); + List transData = warehouseMdService.filterWarehouse(warehouseQueryRequest); + new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, orderDetailMdService, transData); } } @@ -149,53 +166,50 @@ public class TransInoutService { @Async public void repeatCommit(CommitRequest commitRequest) { - List warehousetempList = warehouseService.findTempByOrderId(commitRequest); + String orderId = commitRequest.getOrderId(); + List warehousetempList = warehouseTempMdService.findTempByOrderId(commitRequest.getOrderId()); if (warehousetempList != null && warehousetempList.size() > 0) { String result; - - List insertList = new ArrayList<>(); + List insertList = new ArrayList<>(); for (int j = 0; j < warehousetempList.size(); j++) { - Warehousetemp warehousetemp = warehousetempList.get(j); - result = new InoutUtils().filterCode(warehouseService, warehousetemp, setupService); + WarehousetempEntity warehousetemp = warehousetempList.get(j); + result = new InoutUtils().filterCode(warehouseMdService, warehousetemp, setupService); if (result == null) { insertList.add(warehousetemp); } else { - orderService.updateRemark(warehousetemp.getOrderid(), result); + OrderMdEntity tempEntity = new OrderMdEntity(); + tempEntity.setOrderId(orderId); + tempEntity.setRemark(result); + orderService.updateOrder(tempEntity); insertList.clear(); return; } } if (insertList.size() > 0) { - warehouseService.insertWarehouses(new WarehousBeanUtils().tempsToEntitys(insertList)); - orderService.updateOrderStatus(insertList.get(0).getOrderid(), "success"); - List ids = new ArrayList<>(); - for (Warehousetemp warehousetemp : insertList) { - ids.add(warehousetemp.getId()); - } - warehouseService.deleteTempWarehouses(ids); - String orderId = insertList.get(0).getOrderid(); - String type = insertList.get(0).getAction(); - - OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); - orderFilterRequest.setId(orderId); - OrderEntity orderEntity = orderService.findOne(orderFilterRequest); - String docidStr = orderEntity.getErpFk(); - String[] docidArray; - List docids = new ArrayList<>(); - if (docidStr != null && docidStr.length() > 0) { - docidArray = docidStr.split(","); - for (int i = 0; i < docidArray.length; i++) { - docids.add(docidArray[i]); - } - } - if (docids == null || docids.size() == 0) { - FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); - filterErpOrderRequest.setOrderId(orderId); - docids = myErpOrderService.filterAllDocid(filterErpOrderRequest); - docids = getDocids(docids); - } - List datas = warehouseService.findByReceiptId(orderId); - new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, datas); + List warehouseEntities = insertList.stream().map(e -> { + WarehouseEntity warehouseEntity = new WarehouseEntity(); + BeanUtils.copyProperties(e, warehouseEntity); + return warehouseEntity; + }).collect(Collectors.toList()); + warehouseMdService.insertWarehouses(warehouseEntities); + + + //更新状态,成功 + OrderMdEntity tempEntity2 = new OrderMdEntity(); + tempEntity2.setOrderId(orderId); + tempEntity2.setStatus("success"); + orderService.updateOrder(tempEntity2); + + + //删除零时表数据 + DeleteRequest deleteRequest = new DeleteRequest(); + deleteRequest.setOrderId(orderId); + warehouseTempMdService.deleteCode(deleteRequest); + + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setOrderId(orderId); + List transData = warehouseMdService.filterWarehouse(warehouseQueryRequest); + new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, orderDetailMdService, transData); } } else { return; @@ -203,39 +217,4 @@ public class TransInoutService { } - public void updateErpOrderId(List erpOrderEntities, String oldId, String newId) { - if (erpOrderEntities != null) { - List inserts = new ArrayList<>(); - for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { - if (erpOrderEntity.getOrderIdFk() == null || erpOrderEntity.getOrderIdFk().equals(oldId)) { - erpOrderEntity.setOrderIdFk(newId); - inserts.add(erpOrderEntity); - } - } - myErpOrderService.insertErpOrders(inserts); - } - - } - - public List getDocids(List ids) { - Map filter = new HashMap<>(); - List docids = new ArrayList<>(); - for (String id : ids) { - if (id.contains(",")) { - String[] dociArray = id.split(","); - if (dociArray != null && dociArray.length > 0) { - for (int i = 0; i < dociArray.length; i++) { - filter.put(dociArray[i], dociArray[i]); - } - } - } else { - filter.put(id, id); - } - } - for (String docid : filter.keySet()) { - docids.add(docid); - } - return docids; - - } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/util/DateUtil.java b/api-udims/src/main/java/com/glxp/udi/admin/util/DateUtil.java index 673c99d..9ebab88 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/util/DateUtil.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/util/DateUtil.java @@ -19,7 +19,7 @@ public class DateUtil extends org.apache.commons.lang3.time.DateUtils { "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM/dd HH", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM.dd HH", "yyyy.MM", "yyyy年MM月dd日", "yyyy年MM月dd日 HH时mm分ss秒", "yyyy年MM月dd日 HH时mm分", "yyyy年MM月dd日 HH时", "yyyy年MM月", - "yyyy"}; + "yyyy", "yyyy-MM-dd'T'HH:mm:ss:sssZ"}; /** * 得到日期字符串 ,转换格式(yyyy-MM-dd) @@ -149,17 +149,42 @@ public class DateUtil extends org.apache.commons.lang3.time.DateUtils { /** * 日期型字符串转化为日期 格式 see to DateUtils#parsePatterns */ - public static Date parseDate(Object str) { + public static Date parseDate(String str) { if (str == null) { return null; } + String tempTime = str.replace("Z", "UTC"); try { - return parseDate(str.toString(), parsePatterns); + return parseDate(tempTime, parsePatterns); } catch (ParseException e) { return null; } } + public static Date convertTimeFormat(String sourceTime) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");//注意格式化的表达式 + sourceTime = sourceTime.replace("Z", " UTC");//注意是空格+UTC + Date resDate = null; + try { + resDate = format.parse(sourceTime); + } catch (ParseException e) { + e.printStackTrace(); + } + return resDate; + } + + + public static Date dateToISODate(Date dateStr) { + Date parse = null; + try { + // 解析字符串时间 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + parse = format.parse(format.format(dateStr)); + } catch (ParseException e) { + e.printStackTrace(); + } + return parse; + } /** * 获取过去的天数 diff --git a/api-udims/src/main/resources/application-pro.properties b/api-udims/src/main/resources/application-pro.properties index ac7affe..8fd353c 100644 --- a/api-udims/src/main/resources/application-pro.properties +++ b/api-udims/src/main/resources/application-pro.properties @@ -1,21 +1,24 @@ # 生产环境 - server.port=9995 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udims?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root -spring.datasource.password=mysql@2020 +spring.datasource.password=123456 server.servlet.context-path= +spring.data.mongodb.database=udiwms +spring.data.mongodb.username=root +spring.data.mongodb.password=123456 +spring.data.mongodb.host=localhost +spring.data.mongodb.port=27017 +logging.level.org.springframework.data.mongodb.core.MongoTemplate=debug logging.level.com.glxp.udi.admin.dao=debug # 跨域设置 cors.allowed-origins=* cors.allowed-headers=Content-Type,ADMIN_ID,ADMIN_TOKEN cors.allowed-methods=GET,POST,PUT,DELETE,PATCH,OPTIONS -cors.allowed-Credentials = true - - +cors.allowed-Credentials=true #mips服务地址 -UDIC_MIPSDOWNLOAD_URL = http://127.0.0.1:8080/UDIC_MIPSDL_Server +UDIC_MIPSDOWNLOAD_URL=http://127.0.0.1:8080/UDIC_MIPSDL_Server UDI_SERVER_URL=http://127.0.0.1:8080/UDI_DL_Server UCLOD_SERVER_URL=http://127.0.0.1:9997 #UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server diff --git a/api-udims/src/main/resources/mybatis/mapper/inout/DruginfoMapper.xml b/api-udims/src/main/resources/mybatis/mapper/inout/DruginfoMapper.xml index 0c44e76..8b8268e 100644 --- a/api-udims/src/main/resources/mybatis/mapper/inout/DruginfoMapper.xml +++ b/api-udims/src/main/resources/mybatis/mapper/inout/DruginfoMapper.xml @@ -321,7 +321,7 @@ where nameCode = #{namecode,jdbcType=VARCHAR} - + diff --git a/api-udims/src/main/resources/mybatis/mapper/inout/WarehousetempDao.xml b/api-udims/src/main/resources/mybatis/mapper/inout/WarehousetempDao.xml index 3fd6566..0aa4f8c 100644 --- a/api-udims/src/main/resources/mybatis/mapper/inout/WarehousetempDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/inout/WarehousetempDao.xml @@ -13,7 +13,7 @@ (action, mainAction, code, corpOrderId, actor, actDate, wrongCode, upperCorpOrderId, - fromCorpID, fromCorp, orderId,batchNo,produceDate,expireDate,serialNo,udi,count,type,oddCount,customerId) + fromCorpID, fromCorp, orderId,batchNo,produceDate,expireDate,serialNo,udi,count,customerId) VALUES @@ -36,8 +36,6 @@ ,#{item.serialNo} ,#{item.udi} ,#{item.count} - ,#{item.type} - ,#{item.oddCount} ,#{item.customerId} ) diff --git a/api-udims/src/test/java/com/glxp/udi/admin/util/MongoDbTest.java b/api-udims/src/test/java/com/glxp/udi/admin/util/MongoDbTest.java new file mode 100644 index 0000000..281c8c8 --- /dev/null +++ b/api-udims/src/test/java/com/glxp/udi/admin/util/MongoDbTest.java @@ -0,0 +1,92 @@ +package com.glxp.udi.admin.util; + +import com.glxp.udi.BaseApiAdminApplicationTest; +import com.glxp.udi.admin.entity.inout.WarehouseEntity; +import com.glxp.udi.admin.entity.inout.WarehousetempEntity; +import com.glxp.udi.admin.mongo.service.WarehouseMdService; +import com.glxp.udi.admin.mongo.service.WarehouseTempMdService; +import com.glxp.udi.admin.mongo.utils.PageResult; +import com.glxp.udi.admin.req.inout.WarehouseQueryRequest; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class MongoDbTest extends BaseApiAdminApplicationTest { + + @Resource + private WarehouseTempMdService warehousetempService; + @Resource + private WarehouseMdService warehouseMdService; + + + private static final Logger log = LoggerFactory.getLogger(MongoDbTest.class); + + @Test + public void insertTempWarehouses() { + List warehousetempEntityList = new ArrayList<>(); + for (int i = 0; i < 100; i++) { + WarehouseEntity warehousetempEntity = new WarehouseEntity(); + warehousetempEntity.setAction("1"); + warehousetempEntity.setMainAction("1"); + warehousetempEntity.setCode("1"); + warehousetempEntity.setCorpOrderId("1"); + warehousetempEntity.setActor("1"); + warehousetempEntity.setActDate("1"); + warehousetempEntity.setWrongCode(1); + warehousetempEntity.setUpperCorpOrderId("1"); + warehousetempEntity.setFromCorpId("1"); + warehousetempEntity.setFromCorp("1"); + warehousetempEntity.setOrderId("1"); + warehousetempEntity.setBatchNo("1"); + warehousetempEntity.setProduceDate("1"); + warehousetempEntity.setExpireDate("1"); + warehousetempEntity.setSerialNo("1"); + warehousetempEntity.setUdi("1"); + warehousetempEntity.setType(1); + warehousetempEntity.setCount(1); + warehousetempEntity.setCustomerId(1l); + warehousetempEntityList.add(warehousetempEntity); + } + + warehouseMdService.insertWarehouses(warehousetempEntityList); + + } + + @Test + public void deleteTempWarehouses() { + Set ids = new HashSet<>(); + ids.add("60d482458f9da70e386e9ef6"); + ids.add("60d482f38f9da74c98219d2e"); +// warehousetempService.deleteTempWarehouses(ids); + } + + @Test + public void findTempByOrderId() { + List warehousetempEntities = warehousetempService.findTempByOrderId("60d536408f9da749342ea53a"); + log.info(warehousetempEntities.size() + ""); + } + + + @Test + public void filterWarehouseByPage() { + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setCustomerId(110l); + warehouseQueryRequest.setOrderId("10"); + warehouseQueryRequest.setPage(1); + warehouseQueryRequest.setLimit(10); + PageResult warehouseEntityPageResult = warehouseMdService.filterWarehouseByPage(warehouseQueryRequest); + List warehouseEntities = warehouseMdService.filterWarehouse(warehouseQueryRequest); + log.info(warehouseEntityPageResult.getTotal() + ""); + } + + @Test + public void updateWarehouse() { + warehouseMdService.updateUnit("110","123456","厦门片仔癀"); + } +} diff --git a/pom.xml b/pom.xml index a6560c5..2bedd20 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,7 @@ +