diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java index c132cb6..b40fbb9 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java @@ -1,10 +1,10 @@ package com.glxp.sale.admin.controller.basic; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.constant.Constant; import com.glxp.sale.admin.entity.auth.AuthAdmin; -import com.glxp.sale.admin.entity.basic.BussinessLocalTypeEntity; import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; import com.glxp.sale.admin.entity.inout.OrderEntity; import com.glxp.sale.admin.exception.JsonException; @@ -22,7 +22,6 @@ import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.common.enums.ResultEnum; import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; -import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestContextHolder; @@ -33,8 +32,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.InputStream; import java.util.List; -import java.util.Locale; -import java.util.stream.Collectors; /** * 业务类型维护 @@ -189,4 +186,19 @@ public class BussinessTypeController { return ResultVOUtils.success("导入成功!"); } + + /** + * 获取候选补单单据类型 + * + * @return + */ + @GetMapping("/warehouse/bussinessType/candidateBussinessType") + public BaseResponse candidateBussinessType(String id) { + if (StrUtil.isBlank(id)) { + return ResultVOUtils.error(ResultEnum.DATA_ERROR); + } + //查询补单单据类型 + return ResultVOUtils.success(bussinessTypeService.candidateBussinessType(id)); + } + } 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 8498ef5..37379f1 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 @@ -1,30 +1,21 @@ package com.glxp.sale.admin.controller.inout; -import com.alibaba.fastjson.JSON; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.constant.Constant; import com.glxp.sale.admin.constant.ConstantStatus; -import com.glxp.sale.admin.controller.inout.utils.ContrastErpUtil; import com.glxp.sale.admin.controller.inout.utils.DataTransUtil; -import com.glxp.sale.admin.controller.inout.utils.InoutUtils; import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; import com.glxp.sale.admin.entity.inout.*; -import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; import com.glxp.sale.admin.entity.udid.UdiEntity; -import com.glxp.sale.admin.httpclient.ErpOrderClient; import com.glxp.sale.admin.req.inout.*; -import com.glxp.sale.admin.req.param.SystemParamConfigRequest; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.service.basic.BussinessTypeService; -import com.glxp.sale.admin.service.basic.UdiInfoService; -import com.glxp.sale.admin.service.basic.UdiRelevanceService; import com.glxp.sale.admin.service.inout.*; -import com.glxp.sale.admin.service.param.SystemParamConfigService; import com.glxp.sale.admin.thread.InvProductsTrService; import com.glxp.sale.admin.thread.IoTransInoutService; import com.glxp.sale.admin.util.CustomUtil; -import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.admin.util.FilterUdiUtils; import com.glxp.sale.common.enums.ResultEnum; import com.glxp.sale.common.res.BaseResponse; @@ -395,5 +386,20 @@ public class OrderController { return docids; } + /** + * 补单 + * + * @param billNo 单据号 + * @return + */ + @GetMapping("/udiwms/stock/order/supplementOrder") + public BaseResponse supplementOrder(@RequestParam("billNo") String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.DATA_ERROR); + } + return orderService.supplementOrder(billNo); + } + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java index 2447553..316ad4c 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java @@ -1,36 +1,24 @@ package com.glxp.sale.admin.controller.inout; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.constant.Constant; import com.glxp.sale.admin.constant.ConstantStatus; -import com.glxp.sale.admin.constant.IncodeStatus; import com.glxp.sale.admin.controller.inout.inventory.InvPrintController; -import com.glxp.sale.admin.controller.inout.utils.ContrastErpUtil; -import com.glxp.sale.admin.controller.inout.utils.InoutUtils; import com.glxp.sale.admin.entity.auth.AuthAdmin; -import com.glxp.sale.admin.entity.basic.StockPrinttREntity; -import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import com.glxp.sale.admin.entity.basic.StockPrintEntity; -import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.sale.admin.entity.basic.StockPrinttREntity; import com.glxp.sale.admin.entity.info.CompanyEntity; -import com.glxp.sale.admin.entity.inout.*; -import com.glxp.sale.admin.entity.inventory.InCodeLogEntity; +import com.glxp.sale.admin.entity.inout.StockOrderDetailEntity; +import com.glxp.sale.admin.entity.inout.StockOrderEntity; +import com.glxp.sale.admin.entity.inout.StockQRCodeTextEntity; import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; -import com.glxp.sale.admin.entity.thrsys.ThrOrderDetailEntity; -import com.glxp.sale.admin.entity.thrsys.ThrOrderEntity; -import com.glxp.sale.admin.entity.udid.UdiEntity; import com.glxp.sale.admin.exception.JsonException; -import com.glxp.sale.admin.httpclient.ErpOrderClient; import com.glxp.sale.admin.req.inout.*; import com.glxp.sale.admin.req.inventory.PostStockPrintRequest; -import com.glxp.sale.admin.req.param.SystemParamConfigRequest; -import com.glxp.sale.admin.req.thrsys.FilterThrOrderDetailRequest; -import com.glxp.sale.admin.req.thrsys.FilterThrOrderRequest; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.basic.UdiRelevanceResponse; import com.glxp.sale.admin.res.inout.ErpOrderResponse; +import com.glxp.sale.admin.res.inout.StockOrderResponse; import com.glxp.sale.admin.service.auth.AuthAdminService; import com.glxp.sale.admin.service.basic.UdiInfoService; import com.glxp.sale.admin.service.basic.UdiRelevanceService; @@ -39,30 +27,24 @@ import com.glxp.sale.admin.service.inout.*; import com.glxp.sale.admin.service.inventory.InCodeLogService; import com.glxp.sale.admin.service.inventory.InvStockPrintService; import com.glxp.sale.admin.service.param.SystemParamConfigService; -import com.glxp.sale.admin.util.*; +import com.glxp.sale.admin.util.DateUtil; +import com.glxp.sale.admin.util.StockOrderBillNoUtils; import com.glxp.sale.common.enums.ResultEnum; import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; -import org.springframework.web.client.RestTemplate; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @RestController public class StockOrderController { @@ -96,6 +78,8 @@ public class StockOrderController { InCodeLogService inCodeLogService; @Resource CompanyService companyService; + @Resource + OrderService orderService; @GetMapping("/udiwms/stock/order/error") public BaseResponse listStockOrderNoDealWith(StockOrderFilterRequest stockOrderFilterRequest) { @@ -277,9 +261,12 @@ public class StockOrderController { stockOrderEntityList = stockOrderService.filterListOr(stockOrderFilterRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(stockOrderEntityList); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + + //判断订单是否可以补单 + List resultList = orderService.checkSupplementOrder(stockOrderEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(stockOrderEntityList); + pageSimpleResponse.setList(resultList); return ResultVOUtils.success(pageSimpleResponse); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BussinessTypeDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BussinessTypeDao.java index a5a6d21..19a292e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BussinessTypeDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BussinessTypeDao.java @@ -24,5 +24,21 @@ public interface BussinessTypeDao { boolean deleteById(@Param("id") String id); - + BussinessTypeEntity selectByAction(String action); + + /** + * 查询是否启用补单 + * + * @param billNo + * @return + */ + String selectEnableSupplementOrder(String billNo); + + /** + * 查询候选补单类型 + * + * @param mainAction + * @return + */ + List selectCandidateBussinsessTypes(String mainAction); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/CodesDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/CodesDao.java index b36555c..454f82a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/CodesDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/CodesDao.java @@ -10,6 +10,8 @@ import java.util.List; @Mapper public interface CodesDao { + WarehouseEntity getByCorpOrderId(String corpOrderId); + List listWarehouse(WarehouseQueryRequest warehouseQueryRequest); boolean insertWarehouse(WarehouseEntity warehouseEntity); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java index f07ef0f..3cb8583 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java @@ -1,14 +1,13 @@ package com.glxp.sale.admin.dao.inout; -import java.util.List; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - import com.glxp.sale.admin.entity.inout.StockOrderEntity; import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity; import com.glxp.sale.admin.req.inout.StockOrderFilterRequest; import com.glxp.sale.admin.req.inout.StockOrderQueryRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface StockOrderDao { @@ -30,6 +29,9 @@ public interface StockOrderDao { List filterListOr(StockOrderFilterRequest stockOrderFilterRequest); StockOrderEntity findOne(StockOrderFilterRequest stockOrderFilterRequest); - + List listOrderPrint(StockOrderFilterRequest stockOrderFilterRequest); + + void updateSupplementNoByBillNo(@Param("billNo") String billNo, @Param("supplementOrderNo") String supplementOrderNo); + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/inventory/InvWarehouseDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/inventory/InvWarehouseDao.java index e1a06ed..bb6eb07 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/inventory/InvWarehouseDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/inventory/InvWarehouseDao.java @@ -20,4 +20,5 @@ public interface InvWarehouseDao { boolean deleteById(@Param("id") String id); + String getNameByCode(@Param("fromCorpId") String fromCorpId); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java index 86f3b43..e56f5e7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java @@ -38,5 +38,7 @@ public class BussinessTypeEntity { private int corpType; private String storageCode; + //补单类型 + private String supplementOrderType; } 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 92c3eb5..adf5bee 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 @@ -35,4 +35,7 @@ public class OrderEntity { private String invWarehouseCode; private String locStorageCode; + //补单单号 + private String supplementNo; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java index c0c7051..43b8aff 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java @@ -28,4 +28,7 @@ public class StockOrderEntity { private String orderIdFk; private BigDecimal totalPrice; private String locStorageCode; + + //补单单号 + private String supplementNo; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BussinessTypResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BussinessTypResponse.java index c31ace3..d2de449 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BussinessTypResponse.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BussinessTypResponse.java @@ -41,4 +41,10 @@ public class BussinessTypResponse { private boolean secCheckChange; private int corpType; private String storageCode; + + //补单类型 + private String supplementOrderType; + + //启用默认补单 + private boolean enableSupplementOrder; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/inout/StockOrderResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/inout/StockOrderResponse.java new file mode 100644 index 0000000..d9cd794 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/inout/StockOrderResponse.java @@ -0,0 +1,11 @@ +package com.glxp.sale.admin.res.inout; + +import com.glxp.sale.admin.entity.inout.StockOrderEntity; +import lombok.Data; + +@Data +public class StockOrderResponse extends StockOrderEntity { + + private boolean enableSupplementOrder; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BussinessTypeService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BussinessTypeService.java index 2c8025d..c4cfc3a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BussinessTypeService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BussinessTypeService.java @@ -30,4 +30,12 @@ public interface BussinessTypeService { boolean updateBussinessType(BussinessTypeEntity bussinessTypeEntity); boolean deleteById(String id); + + /** + * 查询候选补单类型 + * + * @param id + * @return + */ + List candidateBussinessType(String id); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessTypeServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessTypeServiceImpl.java index 13b9fa7..aa9098b 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessTypeServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessTypeServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.sale.admin.service.basic.impl; import com.github.pagehelper.PageHelper; +import com.glxp.sale.admin.constant.TypeConstant; import com.glxp.sale.admin.dao.basic.BussinessTypeDao; import com.glxp.sale.admin.entity.basic.BasicThirdSysDetailEntity; import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; @@ -118,4 +119,16 @@ public class BussinessTypeServiceImpl implements BussinessTypeService { public boolean deleteById(String id) { return bussinessTypeDao.deleteById(id); } + + @Override + public List candidateBussinessType(String id) { + BussinessTypeEntity rawData = bussinessTypeDao.selectById(id); + String mainAction; + if (rawData.getMainAction().equals(TypeConstant.TYPE_OUT)) { + mainAction = TypeConstant.TYPE_PUT; + } else { + mainAction = TypeConstant.TYPE_OUT; + } + return bussinessTypeDao.selectCandidateBussinsessTypes(mainAction); + } } 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 d03cf2c..ee4df54 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 @@ -1,10 +1,12 @@ package com.glxp.sale.admin.service.inout; import com.glxp.sale.admin.entity.inout.OrderEntity; +import com.glxp.sale.admin.entity.inout.StockOrderEntity; import com.glxp.sale.admin.entity.inout.WarehouseEntity; import com.glxp.sale.admin.req.inout.OrderFilterRequest; import com.glxp.sale.admin.req.inout.OrderQueryRequest; -import org.apache.ibatis.annotations.Param; +import com.glxp.sale.admin.res.inout.StockOrderResponse; +import com.glxp.sale.common.res.BaseResponse; import java.util.List; @@ -51,4 +53,20 @@ public interface OrderService { List filterListByOrder(List orderList); List filterListByCode(List warehouseEntityList); + + /** + * 补单 + * + * @param billNo 单据号 + * @return + */ + BaseResponse supplementOrder(String billNo); + + /** + * 判断订单是否可以补单 + * + * @param stockOrderEntityList + * @return + */ + List checkSupplementOrder(List stockOrderEntityList); } 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 5903177..6223a60 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 @@ -1,19 +1,34 @@ package com.glxp.sale.admin.service.inout.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; -import com.glxp.sale.admin.dao.inout.OrderDao; -import com.glxp.sale.admin.dao.inout.WarehouseDao; +import com.glxp.sale.admin.constant.ConstantStatus; +import com.glxp.sale.admin.dao.basic.BussinessTypeDao; +import com.glxp.sale.admin.dao.inout.*; +import com.glxp.sale.admin.dao.inventory.InvWarehouseDao; +import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; import com.glxp.sale.admin.entity.inout.OrderEntity; +import com.glxp.sale.admin.entity.inout.StockOrderEntity; import com.glxp.sale.admin.entity.inout.WarehouseEntity; import com.glxp.sale.admin.req.inout.OrderFilterRequest; import com.glxp.sale.admin.req.inout.OrderQueryRequest; +import com.glxp.sale.admin.res.inout.StockOrderResponse; import com.glxp.sale.admin.service.inout.OrderService; +import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.common.enums.ResultEnum; +import com.glxp.sale.common.res.BaseResponse; +import com.glxp.sale.common.util.ResultVOUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.List; +@Slf4j @Service public class OrderServiceImpl implements OrderService { @@ -21,6 +36,16 @@ public class OrderServiceImpl implements OrderService { OrderDao orderDao; @Resource WarehouseDao warehouseDao; + @Resource + BussinessTypeDao bussinessTypeDao; + @Resource + StockOrderDao stockOrderDao; + @Resource + InvWarehouseDao invWarehouseDao; + @Resource + CodesDao codesDao; + @Resource + CodesTempDao codesTempDao; @Override public List listOrders(OrderQueryRequest orderQueryRequest) { @@ -158,5 +183,83 @@ public class OrderServiceImpl implements OrderService { return orderDao.filterListByCode(warehouseEntityList); } + @Override + public BaseResponse supplementOrder(String billNo) { + //查询订单数据 + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setId(billNo); + OrderEntity order = orderDao.findOne(orderFilterRequest); + //查询此类型单据是否可以补单 + BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(order.getAction()); + if (StrUtil.isBlank(bussinessTypeEntity.getSupplementOrderType())) { + //此类型单据不可补单 + return ResultVOUtils.error(ResultEnum.valueOf("此类型单据不可补单")); + } + OrderEntity supplementOrder = new OrderEntity(); + BeanUtil.copyProperties(order, supplementOrder); + //生成补单单号 + String supplementOrderNo = CustomUtil.getId(); + supplementOrder.setSupplementNo(order.getId()); + supplementOrder.setId(supplementOrderNo); + //修改状态 + supplementOrder.setStatus(1); //设置状态为等待处理 + supplementOrder.setExportStatus(0); //设置导出状态为未导出 + supplementOrder.setContrastStatus(0);//设置erp校验状态为未校验 + supplementOrder.setReceiveStatus(0); //设置验收状态为未验收 + + //修改往来单位及当前库存号 + supplementOrder.setFromCorpId(order.getLocStorageCode()); + supplementOrder.setLocStorageCode(order.getFromCorpId()); + String name = invWarehouseDao.getNameByCode(order.getFromCorpId()); + supplementOrder.setFromCorp(name); + supplementOrder.setFromType(ConstantStatus.FROM_CHANGE); + + //复制码表 + WarehouseEntity code = codesDao.getByCorpOrderId(order.getCorpOrderId()); + WarehouseEntity supplementCode = new WarehouseEntity(); + BeanUtil.copyProperties(code, supplementCode); + supplementCode.setFromCorpId(supplementOrder.getFromCorpId()); + supplementCode.setFromCorp(supplementOrder.getFromCorp()); + supplementCode.setLocStorageCode(supplementCode.getLocStorageCode()); + + supplementCode.setOrderId(supplementOrderNo); + //查询补单设置 + supplementCode.setAction(bussinessTypeEntity.getSupplementOrderType()); + BussinessTypeEntity supplementType = bussinessTypeDao.selectByAction(bussinessTypeEntity.getSupplementOrderType()); + supplementCode.setMainAction(supplementType.getMainAction()); + supplementCode.setId(null); + + //更新数据 + try { + orderDao.insertOrder(supplementOrder); + //更新配货单表对应单据的补单单号 + stockOrderDao.updateSupplementNoByBillNo(billNo, supplementOrderNo); + codesTempDao.insertCodesTempSingle(supplementCode); + } catch (Exception e) { + log.error("补单数据插入失败"); + } + return ResultVOUtils.success(); + } + + @Override + public List checkSupplementOrder(List stockOrderEntityList) { + if (CollUtil.isEmpty(stockOrderEntityList)) { + return Collections.emptyList(); + } + List result = new ArrayList<>(); + stockOrderEntityList.forEach(stockOrderEntity -> { + StockOrderResponse response = new StockOrderResponse(); + BeanUtil.copyProperties(stockOrderEntity, response); + String supplementOrderType = bussinessTypeDao.selectEnableSupplementOrder(stockOrderEntity.getBillNo()); + if (StrUtil.isBlank(supplementOrderType) || StrUtil.isNotBlank(stockOrderEntity.getSupplementNo())) { + response.setEnableSupplementOrder(false); + } else { + response.setEnableSupplementOrder(true); + } + result.add(response); + }); + return result; + } + } diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml index f776329..b0b8ccf 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml @@ -185,7 +185,7 @@ index=#{index}, corpType=#{corpType}, storageCode=#{storageCode}, - + supplementOrderType=#{supplementOrderType}, thirdSysFk=#{thirdSysFk}, WHERE id = #{id} @@ -203,4 +203,19 @@ FROM basic_bussiness_type 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 e410dd5..af39610 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml @@ -117,6 +117,11 @@ FROM io_codes WHERE `orderId` = #{orderId} + UPDATE io_codes SET orderId = #{newOrderId} diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml index 95db5e5..8520dd3 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml @@ -83,6 +83,11 @@ SET `status` = #{status} where id = #{orderId} + + update stock_order + set supplementNo = #{supplementOrderNo} + where billNo = #{billNo} + + insert INTO inv_warehouse