diff --git a/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java b/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java index 608092e..b3db4d7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java @@ -119,5 +119,8 @@ public class ConstantStatus { public static final String SYNC_SCAN_ORDER = "AutoDownloadOrder"; public static final String SYNC_DI_PRODUCTS = "AutoDownloadDiProducts"; + public static final String REDIS_BILLNO = "ACCEPT_"; //缓存单据前缀 + public static final String REDIS_BILLNO_CODES = "ACCEPT_CODES"; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessLocalTypeController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessLocalTypeController.java index bedc4d0..dab0c39 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessLocalTypeController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessLocalTypeController.java @@ -231,15 +231,19 @@ public class BussinessLocalTypeController { if (bussinessTypeEntity != null) { bussinessTypeEntity.setAction("ST" + CustomUtil.getId()); BussinessLocalTypeEntity bussinessLocalTypeEntity = bussinessLocalTypeService.findByAction(bussinessTypeEntity.getAction()); + BussinessLocalTypeEntity bussinessLocalTypeEntity1 = bussinessLocalTypeService.findBTByName(bussinessTypeEntity.getName()); + if (bussinessLocalTypeEntity1 != null) { + return ResultVOUtils.error(999, "业务单据类型名称已存在!"); + } if (bussinessLocalTypeEntity != null) { - ResultVOUtils.error(999, "业务类型已存在!"); + return ResultVOUtils.error(999, "业务类型已存在!"); } else { bussinessTypeEntity.setUpdateTime(new Date()); bussinessLocalTypeService.insertBussinessType(bussinessTypeEntity); } } else { - ResultVOUtils.error(999, "参数错误"); + return ResultVOUtils.error(999, "参数错误"); } return ResultVOUtils.success("更新成功"); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/EntrustReceController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/EntrustReceController.java index ba2a7e4..860aa2d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/EntrustReceController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/EntrustReceController.java @@ -95,10 +95,10 @@ public class EntrustReceController { public BaseResponse updateEntrustRece(@RequestBody EntrustReceEntity entrustReceEntity) { entrustReceEntity.setUpdateTime(new Date()); - EntrustReceEntity temp = entrustReceService.findByUnique(entrustReceEntity.getAction(), entrustReceEntity.getEntrustUser()); - if (temp != null) { - return ResultVOUtils.error(500, "已存在相同的委托验收"); - } +// EntrustReceEntity temp = entrustReceService.findByUnique(entrustReceEntity.getAction(), entrustReceEntity.getEntrustUser()); +// if (temp != null) { +// return ResultVOUtils.error(500, "已存在相同的委托验收"); +// } boolean b = entrustReceService.updateEntrustRec(entrustReceEntity); if (b) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiContrastController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiContrastController.java index abdb9d0..ef8f71f 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiContrastController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiContrastController.java @@ -153,6 +153,8 @@ public class UdiContrastController { udiInfoService.deleteByUuid(udiRelevanceEntity.getUuid()); for (UdiInfoEntity udiInfoEntity : udiInfoEntities) { udiInfoEntity.setUuid(udiRelevanceEntity.getUuid()); + udiInfoEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); + } udiInfoService.insertUdiInfos(UdiInfoUtil.initUdiInfoEntitys(udiInfoEntities)); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java index 7215e7c..ddb4ab0 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoController.java @@ -128,9 +128,17 @@ public class UdiInfoController { @GetMapping("udiwms/udiinfo/superSearch") public BaseResponse superSearch(FilterUdiInfoRequest filterUdiInfoRequest) { - if (StrUtil.isEmpty(filterUdiInfoRequest.getNameCode())) { + if (StrUtil.isEmpty(filterUdiInfoRequest.getNameCode()) && StrUtil.isEmpty(filterUdiInfoRequest.getUdiCode())) { return ResultVOUtils.error(500, "DI不能为空!"); } + + if (StrUtil.isNotEmpty(filterUdiInfoRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiInfoRequest.getUdiCode()); + if (udiEntity == null) + return ResultVOUtils.error(500, "UDI码格式错误!"); + filterUdiInfoRequest.setNameCode(udiEntity.getUdi()); + } + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); productInfoFilterRequest.setNameCode(filterUdiInfoRequest.getNameCode()); productInfoFilterRequest.setPage(filterUdiInfoRequest.getPage()); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/info/CompanyProductRelevanceController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/info/CompanyProductRelevanceController.java index a9b0214..05929d0 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/info/CompanyProductRelevanceController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/info/CompanyProductRelevanceController.java @@ -69,13 +69,6 @@ public class CompanyProductRelevanceController { List basicInstrumentMaintainRelevanceResponses = null; companyProductRelevanceRequest.setDiType(1); basicInstrumentMaintainRelevanceResponses = companyProductRelevanceService.filterUdiGp(companyProductRelevanceRequest); -// if (basicInstrumentMaintainRelevanceResponses != null && basicInstrumentMaintainRelevanceResponses.size() > 0) { -// for (CompanyProductRelevanceResponse basicInstrumentMaintainRelevanceResponse : basicInstrumentMaintainRelevanceResponses) { -// if (basicInstrumentMaintainRelevanceResponse.getDiType() == 2 && basicInstrumentMaintainRelevanceResponse.getIsUseDy() != 1) { -// basicInstrumentMaintainRelevanceResponse.setNameCode(basicInstrumentMaintainRelevanceResponse.getSjcpbm()); -// } -// } -// } PageInfo pageInfo; pageInfo = new PageInfo<>(basicInstrumentMaintainRelevanceResponses); 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 85eac09..3be4668 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 @@ -345,6 +345,9 @@ public class OrderController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + RedisUtil redisUtil; + //手持终端验收完成后,更新订单状态 @AuthRuleAnnotation("") @PostMapping("/spms/inout/order/check/updateStatus") @@ -378,8 +381,11 @@ public class OrderController { for (StockOrderEntity stockOrderEntity : stockOrderEntityLit) { stockOrderEntity.setEntrustEnd(true); stockOrderService.updateById(stockOrderEntity); + redisUtil.del(ConstantStatus.REDIS_BILLNO + stockOrderEntity.getBillNo()); + redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + stockOrderEntity.getBillNo()); } } + return ResultVOUtils.success("验收成功!"); } else @@ -480,6 +486,8 @@ public class OrderController { } stockOrderEntity.setEntrustEnd(true); stockOrderService.updateById(stockOrderEntity); + redisUtil.del(ConstantStatus.REDIS_BILLNO + stockOrderEntity.getBillNo()); + redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + stockOrderEntity.getBillNo()); } } else { StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest(); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderDetailController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderDetailController.java index 31e8d10..ea51305 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderDetailController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderDetailController.java @@ -522,14 +522,19 @@ public class OrderDetailController { return ResultVOUtils.error(500, "所选业务单据当前分库不一致!"); } - if (!temp.getInvWarehouseCode().equals(erpOrderEntities.get(i).getInvWarehouseCode())) { - return ResultVOUtils.error(500, "所选业务单据当前分库不一致!"); - } - if (!bussinessTypeEntity.getLocalAction().equals(erpOrderEntities.get(i).getBillType())) { return ResultVOUtils.error(500, "所选单据类型不一致!"); } + + if (!orderEntity.getInvStorageCode().equals(erpOrderEntities.get(i).getLocStorageCode())) { + return ResultVOUtils.error(500, "扫码单据与业务单据当前仓库不一致!"); + } + + if (!orderEntity.getInvWarehouseCode().equals(erpOrderEntities.get(i).getInvWarehouseCode())) { + return ResultVOUtils.error(500, "扫码单据与业务单据当前分库不一致!"); + } + } 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 3ce6295..216015e 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 @@ -3,6 +3,7 @@ package com.glxp.sale.admin.controller.inout; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.ConstantStatus; @@ -42,10 +43,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.List; +import java.util.*; @RestController public class StockOrderController { @@ -86,6 +84,8 @@ public class StockOrderController { private BussinessTypeService bussinessTypeService; @Resource private OrderDao orderDao; + @Resource + private RedisUtil redisUtil; @AuthRuleAnnotation("") @GetMapping("/udiwms/stock/order/error") @@ -656,4 +656,161 @@ public class StockOrderController { } return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); } + + + //验收单据 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/stock/order/accept/getOrder") + public BaseResponse getAcceptOrder(String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(billNo); + + AcceptOrderEntity acceptOrderEntity = new AcceptOrderEntity(); + acceptOrderEntity.setBillNo(billNo); + List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); + if (CollUtil.isNotEmpty(datas)) { + acceptOrderEntity.setOrderDetailEntities(datas); + acceptOrderEntity.setExitAccept(true); + } else { + List stockOrderDetailEntities = stockOrderDetailService.findByOrderIdFk(stockOrderEntity.getId()); + acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); + acceptOrderEntity.setExitAccept(false); + } + return ResultVOUtils.success(acceptOrderEntity); + + } + + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/stock/order/acceptClear") + public BaseResponse acceptClear(@RequestBody AcceptOrderEntity acceptOrderEntity) { + String billNo = acceptOrderEntity.getBillNo(); + redisUtil.del(ConstantStatus.REDIS_BILLNO + billNo); + redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + billNo); + StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(billNo); + List stockOrderDetailEntities = stockOrderDetailService.findByOrderIdFk(stockOrderEntity.getId()); + acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); + return ResultVOUtils.success(acceptOrderEntity); + } + + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/stock/order/accept/addCode") + public BaseResponse acceptAddCode(@RequestBody AcceptOrderEntity acceptOrderEntity) { + + StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(acceptOrderEntity.getBillNo()); + +// +// if (warehouseEntity == null) { +// return ResultVOUtils.error(500, "非此单UDI码!"); +// } + List codeList; + List warehouseEntityList = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO_CODES + acceptOrderEntity.getBillNo()); + if (CollUtil.isEmpty(warehouseEntityList)) { + codeList = codesService.findByReceiptId(stockOrderEntity.getOrderIdFk()); + } else { + codeList = warehouseEntityList; + } + WarehouseEntity warehouseEntity = isExit(codeList, acceptOrderEntity.getCode()); + if (warehouseEntity == null) { + return ResultVOUtils.error(500, "非此单UDI码!"); + } + + int status = checkCodeExit(warehouseEntity.getCode(), codeList); + if (status == Constant.CHECK_REPEAT) { + return ResultVOUtils.error(500, "重复扫码!"); + } else if (status == Constant.CHECK_NULL) { + return ResultVOUtils.error(500, "非此单UDI码!"); + } + + List stockOrderDetailEntities = acceptOrderEntity.getOrderDetailEntities(); + if (StrUtil.isNotEmpty(acceptOrderEntity.getCode()) && CollUtil.isNotEmpty(stockOrderDetailEntities)) { + boolean isExit = false; + for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) { + if (stockOrderDetailEntity.getRelId().equals(warehouseEntity.getRelId()) && + StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo()).equals(StrUtil.trimToEmpty(warehouseEntity.getBatchNo())) + ) { + stockOrderDetailEntity.setAcceptCount(stockOrderDetailEntity.getAcceptCount() + warehouseEntity.getCount()); + if (stockOrderDetailEntity.getAcceptCount() > Integer.parseInt(stockOrderDetailEntity.getReCount())) { + return ResultVOUtils.error(500, "数量溢出!"); + } + isExit = true; + break; + } + } + + if (isExit) { + redisUtil.set(ConstantStatus.REDIS_BILLNO + acceptOrderEntity.getBillNo(), stockOrderDetailEntities); + redisUtil.set(ConstantStatus.REDIS_BILLNO_CODES + acceptOrderEntity.getBillNo(), codeList); + acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); + if (vailFinish(stockOrderDetailEntities)) { + acceptOrderEntity.setFinishAccept(true); + return ResultVOUtils.success(acceptOrderEntity); + } + + return ResultVOUtils.success(acceptOrderEntity); + } + + } + return ResultVOUtils.error(500, "非此单条码!"); + } + + + public WarehouseEntity isExit(List codeList, String code) { + if (CollUtil.isNotEmpty(codeList)) { + for (WarehouseEntity warehouseEntity : codeList) { + if (warehouseEntity.getCode().equals(code)) { + return warehouseEntity; + } + } + } + return null; + } + + @Resource + UdiInfoUtils udiInfoUtils; + + + public int checkCodeExit(String code, List codesList) { + if (StrUtil.isNotEmpty(code)) { + code = code.replace("\r\n", ""); + } + + if (code.endsWith("\u001D")) { + code = code.replace("\u001D", ""); + } + + for (WarehouseEntity checkOrderCodesBean : codesList) { + if (checkOrderCodesBean.getCode().toUpperCase(Locale.ROOT).equals(code.toUpperCase(Locale.ROOT))) { + if (checkOrderCodesBean.getStatus() == Constant.DB_CHECK_ED + && checkOrderCodesBean.getCount() == checkOrderCodesBean.getScanCount()) { + return Constant.CHECK_REPEAT; + } + int curCount = checkOrderCodesBean.getScanCount() + udiInfoUtils.getActCount(checkOrderCodesBean); + if (curCount == checkOrderCodesBean.getCount()) { + checkOrderCodesBean.setStatus(Constant.DB_CHECK_ED); + } + checkOrderCodesBean.setScanCount(curCount); + return Constant.CHECK_EXIT; + } + } + return Constant.CHECK_NULL; + } + + + public boolean vailFinish(List stockOrderDetailEntities) { + if (CollUtil.isNotEmpty(stockOrderDetailEntities)) { + for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) { + if (Integer.parseInt(stockOrderDetailEntity.getReCount()) != stockOrderDetailEntity.getAcceptCount()) { + return false; + } + } + return true; + } + return false; + } + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java index 36e21d3..dd7dda0 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java @@ -6,6 +6,8 @@ import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.ConstantStatus; +import com.glxp.sale.admin.constant.ConstantType; +import com.glxp.sale.admin.constant.TypeConstant; import com.glxp.sale.admin.dao.auth.AuthLicenseDao; import com.glxp.sale.admin.dao.inventory.InvWarehouseDao; import com.glxp.sale.admin.entity.auth.AuthAdmin; @@ -734,14 +736,14 @@ public class WareHouseController { } else //是否查询库存 if (addOrderRequest.isVailInv()) { if (bussinessTypeEntity.isAdvanceType()) { - InvProductDetailEntity invProductDetailEntity = invPreProductDetailService.statInvPreInDetail(code); - if (invProductDetailEntity == null) { - addCodeResult.setErrMsg("库存不存在此产品!"); + int count = invPreProductDetailService.vailStockCount(code); + if (count < 0) { + return ResultVOUtils.error(500, "当前库存不足,不允许0库存出库"); } } else { - InvProductDetailEntity invProductDetailEntity = invProductDetailService.statInvPreInDetail(code); - if (invProductDetailEntity == null) { - addCodeResult.setErrMsg("库存不存在此产品!"); + int count = invProductDetailService.vailStockCount(code); + if (count <= 0) { + return ResultVOUtils.error(500, "当前库存不足,不允许0库存出库"); } } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvPreProductsController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvPreProductsController.java index 3dc4626..4782140 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvPreProductsController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvPreProductsController.java @@ -76,8 +76,7 @@ public class InvPreProductsController { filterInvProductRequest.setCustomerId(null); // filterInvProductRequest.setSupId(); } - if(StrUtil.isEmpty(filterInvProductRequest.getBatchNo())) - { + if (StrUtil.isEmpty(filterInvProductRequest.getBatchNo())) { filterInvProductRequest.setBatchNo("empty"); } List invProductDetailEntities = invProductDetailService.filterInvProduct(filterInvProductRequest); @@ -168,4 +167,13 @@ public class InvPreProductsController { return ResultVOUtils.error(501, "寄售库存不存在此产品"); } + + @AuthRuleAnnotation("") + @GetMapping("spms/inv/products/pre/vailInvCount") + public BaseResponse vailInvCount(FilterInvProductDetailRequest filterInvProductDetailRequest) { + int count = invProductDetailService.vailStockCount(filterInvProductDetailRequest.getCode()); + return ResultVOUtils.success(count); + } + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvProductsController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvProductsController.java index d6f9a0b..8386608 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvProductsController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvProductsController.java @@ -452,4 +452,13 @@ public class InvProductsController { return ResultVOUtils.error(501, "库存不存在此产品"); } + + @AuthRuleAnnotation("") + @GetMapping("spms/inv/products/vailInvCount") + public BaseResponse vailInvCount(FilterInvProductDetailRequest filterInvProductDetailRequest) { + int count = invProductDetailService.vailStockCount(filterInvProductDetailRequest.getCode()); + return ResultVOUtils.success(count); + } + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java index c01363c..d0cf42d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java @@ -1,17 +1,18 @@ package com.glxp.sale.admin.controller.thrsys; -import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; +import com.glxp.sale.admin.entity.auth.AuthAdmin; import com.glxp.sale.admin.entity.basic.NewUploadDiEntity; import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity; import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity; import com.glxp.sale.admin.entity.thrsys.ThrProductsAddDiEntity; -import com.glxp.sale.admin.entity.thrsys.ThrProductsEntity; +import com.glxp.sale.admin.exception.JsonException; import com.glxp.sale.admin.req.basic.CombineRequest; import com.glxp.sale.admin.req.basic.SupplementRequest; import com.glxp.sale.admin.req.inout.DeleteRequest; @@ -19,6 +20,7 @@ import com.glxp.sale.admin.req.thrsys.AddThrDiProductsRequest; import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.thrsys.ThrProductsAddDiResponse; +import com.glxp.sale.admin.service.auth.AuthAdminService; import com.glxp.sale.admin.service.basic.NewUploadDiService; import com.glxp.sale.admin.service.basic.UdiContrastService; import com.glxp.sale.admin.service.basic.UdiInfoService; @@ -31,14 +33,17 @@ 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.context.annotation.Bean; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -61,7 +66,8 @@ public class ThrProductsAddDiController { UdiInfoService udiInfoService; @Resource NewUploadDiService newUploadDiService; - + @Resource + private AuthAdminService authAdminService; @Resource SupplementVailUtil supplementVailUtil; @@ -74,6 +80,11 @@ public class ThrProductsAddDiController { @AuthRuleAnnotation("") @GetMapping("udiwms/thrsys/getThrProductsDiList") public BaseResponse filterThrProductsAddDiList(FilterThrProductsRequest filterThrProductsRequest) { + + String customerId = getCustomerId(); + if (!customerId.equals("110")) { + filterThrProductsRequest.setCustomerId(customerId); + } List thrProductsAddDiResponses = thrProductsAddDiService.filterThrProductsList(filterThrProductsRequest); PageInfo pageInfo = new PageInfo<>(thrProductsAddDiResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -83,7 +94,6 @@ public class ThrProductsAddDiController { } - /** * 添加DI产品信息 * @@ -102,8 +112,27 @@ public class ThrProductsAddDiController { if (vailResult != null) return ResultVOUtils.error(500, vailResult); + List uuids = addThrDiProductsRequest.getUuids(); + if (CollUtil.isEmpty(uuids)) { + return ResultVOUtils.error(500, "参数错误"); + } + ThrProductsAddDiEntity thrProductsAddDiEntity = thrProductsAddDiService.selecByUuid(uuids.get(0)); + if (thrProductsAddDiEntity != null) { + return ResultVOUtils.error(500, "重复提交!"); + } thrProductsAddDiService.addThrAddDiProducts(addThrDiProductsRequest); - return ResultVOUtils.success(); + return ResultVOUtils.success("提交成功!"); + } + + public String getCustomerId() { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + return authAdmin.getCustomerId() + ""; } /** @@ -125,7 +154,6 @@ public class ThrProductsAddDiController { ThrProductsAddDiResponse thrProductsAddDiResponse = thrProductsAddDiService.selecById(thrProductsAddDiEntity.getId()); if (thrProductsAddDiEntity.getStatus() == 2) { //审核通过 - UdiInfoEntity udiInfoEntity = thrProductsAddDiService.getDiProductDetail(thrProductsAddDiEntity.getUuid()); //审核通过后追加到耗材字典中 CombineRequest combineRequest = new CombineRequest(); combineRequest.setCustomerId(thrProductsAddDiEntity.getCustomerId()); @@ -135,15 +163,35 @@ public class ThrProductsAddDiController { } else { Long udiRelIdFk = udiContrastService.createOnlyUuid(combineRequest, thrProductsAddDiEntity.getUuid()); + //字段更新 UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(udiRelIdFk + ""); udiRelevanceEntity.setYbbm(thrProductsAddDiResponse.getYbbm()); - udiRelevanceEntity.setSptm(thrProductsAddDiResponse.getYbbm()); - udiRelevanceEntity.setMeasname(thrProductsAddDiResponse.getYbbm()); - udiRelevanceEntity.setYbbm(thrProductsAddDiResponse.getYbbm()); + udiRelevanceEntity.setSptm(thrProductsAddDiResponse.getSptm()); + udiRelevanceEntity.setMeasname(thrProductsAddDiResponse.getMeasname()); + udiRelevanceEntity.setPrice(thrProductsAddDiEntity.getPrice()); + udiRelevanceEntity.setManufactory(thrProductsAddDiEntity.getManufactory()); + + UdiInfoEntity udiInfoEntity = udiInfoService.findByUuid(udiRelevanceEntity.getUuid()); + udiInfoEntity.setSptm(thrProductsAddDiResponse.getSptm()); + udiInfoEntity.setYbbm(thrProductsAddDiResponse.getYbbm()); + udiInfoEntity.setMeasname(thrProductsAddDiResponse.getMeasname()); + udiInfoEntity.setManufactory(thrProductsAddDiResponse.getManufactory()); udiInfoEntity.setSpmc(thrProductsAddDiResponse.getSpmc()); udiInfoEntity.setCpms(thrProductsAddDiResponse.getCpms()); - udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); + udiInfoEntity.setPrice(thrProductsAddDiResponse.getPrice()); + udiInfoEntity.setBasicPrductRemak1(thrProductsAddDiResponse.getBasicPrductRemak1()); + udiInfoEntity.setBasicPrductRemak2(thrProductsAddDiResponse.getBasicPrductRemak2()); + udiInfoEntity.setBasicPrductRemak3(thrProductsAddDiResponse.getBasicPrductRemak3()); + udiInfoEntity.setBasicPrductRemak4(thrProductsAddDiResponse.getBasicPrductRemak4()); + udiInfoEntity.setBasicPrductRemak5(thrProductsAddDiResponse.getBasicPrductRemak5()); + udiInfoEntity.setBasicPrductRemak6(thrProductsAddDiResponse.getBasicPrductRemak6()); + udiInfoEntity.setBasicPrductRemak7(thrProductsAddDiResponse.getBasicPrductRemak7()); + udiInfoEntity.setBasicPrductRemak8(thrProductsAddDiResponse.getBasicPrductRemak8()); udiInfoService.updateUdiInfo(udiInfoEntity); + + + udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); +// udiInfoService.updateUdiInfo(udiInfoEntity); //回填关联关系到关联表 CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity(); companyProductRelevanceEntity.setCustomerId(thrProductsAddDiEntity.getCustomerId()); @@ -152,6 +200,8 @@ public class ThrProductsAddDiController { companyProductRelevanceEntity.setUpdate_time(new Date()); companyProductRelevanceEntity.setUnitFk(thrProductsAddDiEntity.getCustomerId().toString()); companyProductRelevanceEntity.setAuditStatus("1"); + if (StrUtil.isNotEmpty(thrProductsAddDiEntity.getPrice())) + companyProductRelevanceEntity.setPrice(new BigDecimal(thrProductsAddDiEntity.getPrice())); companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/AcceptOrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/AcceptOrderEntity.java new file mode 100644 index 0000000..dceab2c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/AcceptOrderEntity.java @@ -0,0 +1,21 @@ +package com.glxp.sale.admin.entity.inout; + +import lombok.Data; + +import java.util.List; + +@Data +public class AcceptOrderEntity { + + + private String billNo; + + private String code; + + private boolean isExitAccept; + + private boolean finishAccept; + + private List orderDetailEntities; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderDetailEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderDetailEntity.java index 3d742d1..2f0d5a3 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderDetailEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderDetailEntity.java @@ -42,4 +42,7 @@ public class StockOrderDetailEntity { private String serialNo; private Integer codeId; + + + private int acceptCount; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java index 67d45f4..bd63d58 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/WarehouseEntity.java @@ -35,6 +35,9 @@ public class WarehouseEntity { private String fromSubInvCode; private String mySupId; + + private int scanCount; + public String getSupId() { if (supId == null) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java index 58391bc..2b81cb6 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java @@ -33,6 +33,7 @@ public class AddThrDiProductsRequest { private String manufactory; private String spmc; private String cpms; + private String price; private List selectThirdSys; private String basicPrductRemak1; @@ -45,5 +46,4 @@ public class AddThrDiProductsRequest { private String basicPrductRemak8; - } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java index c2be4be..e64c15b 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java @@ -26,4 +26,5 @@ public class FilterThrProductsRequest extends ListPageRequest { private String lastUpdateTime; private String ybbm; private Long id; + private String uuid; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/basic/CompanyProductRelevanceResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/basic/CompanyProductRelevanceResponse.java index 5e1ef82..e1acf16 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/res/basic/CompanyProductRelevanceResponse.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/basic/CompanyProductRelevanceResponse.java @@ -69,7 +69,7 @@ public class CompanyProductRelevanceResponse { private boolean allowNoExpire; private boolean allowNoProduct; private String spmc; - + private Integer productType; private String price; //产品代理商 diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java index db436cf..7a9539e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java @@ -174,7 +174,7 @@ public class UdiContrastService { udiInfoService.insertUdiInfo(udiInfoEntity); } - public long createOnlyUuid(CombineRequest combineRequest, String key) { + public long createOnlyUuid(CombineRequest combineRequest, String key) { List udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key); UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); String time = DateUtil.getDateTime(); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java index 043baf2..930bd81 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java @@ -7,6 +7,7 @@ import com.glxp.sale.admin.dao.basic.BussinessLocalTypeDao; import com.glxp.sale.admin.entity.basic.BussinessLocalTypeEntity; import com.glxp.sale.admin.req.basic.BussinessLocalTypeFilterRequest; import com.glxp.sale.admin.service.basic.BussinessLocalTypeService; +import com.glxp.sale.common.util.ResultVOUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -104,6 +105,9 @@ public class BussinessLocalTypeServiceImpl implements BussinessLocalTypeService @Override public BussinessLocalTypeEntity findBTByName(String name) { + if (StrUtil.isEmpty(name)) { + return null; + } BussinessLocalTypeFilterRequest bussinessTypeFilterRequest = new BussinessLocalTypeFilterRequest(); bussinessTypeFilterRequest.setName(name); List data = bussinessLocalTypeDao.filterList(bussinessTypeFilterRequest); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java index f548376..d8cd153 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java @@ -139,8 +139,13 @@ public class StockOrderServiceImpl implements StockOrderService { @Override public StockOrderEntity findByBillNo(String orderId) { + + if (StrUtil.isEmpty(orderId)) { + return null; + } StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest(); stockOrderFilterRequest.setBillNo(orderId); + return stockOrderDao.findOne(stockOrderFilterRequest); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvPreProductDetailService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvPreProductDetailService.java index 86f31a9..d0bcd02 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvPreProductDetailService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvPreProductDetailService.java @@ -30,4 +30,6 @@ public interface InvPreProductDetailService { int statCount(FilterInvProductDetailRequest filterInvProductDetailRequest); InvProductDetailEntity statInvPreInDetail(String code); + + int vailStockCount(String code); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvProductDetailService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvProductDetailService.java index 0a1a320..2282a01 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvProductDetailService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/InvProductDetailService.java @@ -35,4 +35,6 @@ public interface InvProductDetailService { int statCount(FilterInvProductDetailRequest filterInvProductDetailRequest); InvProductDetailEntity statInvPreInDetail(String code); + + int vailStockCount(String code); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java index eba4ab0..fd0a697 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java @@ -3,6 +3,7 @@ package com.glxp.sale.admin.service.inventory.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; +import com.glxp.sale.admin.constant.ConstantType; import com.glxp.sale.admin.dao.inventory.InvPreProductDetailDao; import com.glxp.sale.admin.dao.inventory.InvProductDetailDao; import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity; @@ -124,4 +125,38 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic } return null; } + + @Override + public int vailStockCount(String code) { + if (StrUtil.isEmpty(code)) { + return 0; + } + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(code); + List datas = invPreProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + if (CollUtil.isEmpty(datas)) { + filterInvProductDetailRequest.setOriginCode(null); + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) + filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); + else + filterInvProductDetailRequest.setBatchNo("empty"); + filterInvProductDetailRequest.setProductionDate(udiEntity.getProduceDate()); + filterInvProductDetailRequest.setExpireDate(udiEntity.getExpireDate()); + datas = invPreProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + } + int count = 0; + if (CollUtil.isNotEmpty(datas)) { + + for (InvProductDetailEntity invProductDetailEntity : datas) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) + count = count + invProductDetailEntity.getCount(); + else { + count = count - invProductDetailEntity.getCount(); + } + } + } + return count; + + } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductDetailServiceImpl.java index 62917e3..0e0ea6a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductDetailServiceImpl.java @@ -3,6 +3,7 @@ package com.glxp.sale.admin.service.inventory.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; +import com.glxp.sale.admin.constant.ConstantType; import com.glxp.sale.admin.dao.inventory.InvProductDetailDao; import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity; import com.glxp.sale.admin.entity.udid.UdiEntity; @@ -129,4 +130,37 @@ public class InvProductDetailServiceImpl implements InvProductDetailService { } return null; } + + @Override + public int vailStockCount(String code) { + if (StrUtil.isEmpty(code)) { + return 0; + } + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(code); + List datas = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + if (CollUtil.isEmpty(datas)) { + filterInvProductDetailRequest.setOriginCode(null); + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) + filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); + else + filterInvProductDetailRequest.setBatchNo("empty"); + filterInvProductDetailRequest.setProductionDate(udiEntity.getProduceDate()); + filterInvProductDetailRequest.setExpireDate(udiEntity.getExpireDate()); + datas = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + } + int count = 0; + if (CollUtil.isNotEmpty(datas)) { + + for (InvProductDetailEntity invProductDetailEntity : datas) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) + count = count + invProductDetailEntity.getCount(); + else { + count = count - invProductDetailEntity.getCount(); + } + } + } + return count; + } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java index 2b83e17..757f32c 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java @@ -14,6 +14,8 @@ public interface ThrProductsAddDiService { ThrProductsAddDiResponse selecById(Long id); + ThrProductsAddDiResponse selecByUuid(String uuid); + /** * 删除DI产品信息 * diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java index 1fb0223..dd24718 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.sale.admin.service.thrsys.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageHelper; import com.glxp.sale.admin.dao.thrsys.ThrProductsAddDiDao; @@ -48,6 +49,20 @@ public class ThrProductsAddDiServiceImpl implements ThrProductsAddDiService { return null; } + @Override + public ThrProductsAddDiResponse selecByUuid(String uuid) { + if (StrUtil.isEmpty(uuid)) { + return null; + } + FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest(); + filterThrProductsRequest.setUuid(uuid); + List thrProductsAddDiResponses = thrProductsAddDiDao.filterThrProductsList(filterThrProductsRequest); + if (CollUtil.isNotEmpty(thrProductsAddDiResponses)) { + return thrProductsAddDiResponses.get(0); + } + return null; + } + @Override public boolean delThrDiProducts(Long id) { return thrProductsAddDiDao.deleteById(id); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/CompanyProductsRelService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/CompanyProductsRelService.java index dd0e291..8802afb 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/CompanyProductsRelService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/CompanyProductsRelService.java @@ -51,6 +51,9 @@ public class CompanyProductsRelService { companyProductRelevanceEntity.setAuditStatus("3"); companyProductRelevanceEntity.setUnitFk(udiInfoExportRequest.getUnitFk()); companyProductRelevanceEntity.setUdiRlIdFk(Integer.parseInt(uuid)); + if (StrUtil.isNotEmpty(udiInfoExportRequest.getSupplementRequest().getPrice())) { + companyProductRelevanceEntity.setPrice(new BigDecimal(udiInfoExportRequest.getSupplementRequest().getPrice())); + } companyProductRelevanceEntity.setCustomerId(udiInfoExportRequest.getCustomerId()); boolean b = companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/UdiDlHttpClient.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/UdiDlHttpClient.java index 09ce909..90992f9 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/UdiDlHttpClient.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/UdiDlHttpClient.java @@ -3,6 +3,7 @@ package com.glxp.sale.admin.thread; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; +import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import com.glxp.sale.admin.entity.receipt.ProductInfoEntity; import com.glxp.sale.admin.req.receipt.ProductInfoFilterRequest; @@ -93,6 +94,7 @@ public class UdiDlHttpClient { BeanUtils.copyProperties(productInfoEntity, udiInfoEntity); udiInfoEntity.setQxlb(productInfoEntity.getCplx()); udiInfoEntity.setCplb(productInfoEntity.getHchzsb()); + udiInfoEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); udiInfoEntities.add(udiInfoEntity); } return udiInfoEntities; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/Constant.java b/api-admin/src/main/java/com/glxp/sale/admin/util/Constant.java index 26b8539..65320f2 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/util/Constant.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/Constant.java @@ -25,4 +25,10 @@ public class Constant { public static String SPTM_TO_DI = "sptm_to_di"; public static String DELAY_SYNC_TIME = "DELAY_SYNC_TIME"; + public static final int DB_CHECK_ED = 1; //已校驗 + public static final int DB_CHECK_UN = 0; //未校驗 + public static final int CHECK_EXIT = 1; //校驗成功,存在 + public static final int CHECK_REPEAT = 2; //重複校驗 + public static final int CHECK_NULL = 3; //校驗失敗,不存在 + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/SupplementVailUtil.java b/api-admin/src/main/java/com/glxp/sale/admin/util/SupplementVailUtil.java index 74fb93b..2e814f7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/util/SupplementVailUtil.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/SupplementVailUtil.java @@ -56,7 +56,7 @@ public class SupplementVailUtil { basicProductSetEntity = basicProductSetEntityMap.get("manufactory"); if (isMustFill(type, basicProductSetEntity)) { if (StrUtil.isEmpty(supplementRequest.getManufactory())) { - return "生产企业不能为空"; + return "生产厂家不能为空"; } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtil.java b/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtil.java index c599f84..341b973 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtil.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtil.java @@ -2,6 +2,7 @@ package com.glxp.sale.admin.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import java.util.List; @@ -25,6 +26,7 @@ public class UdiInfoUtil { public static List initUdiInfoEntitys(List udiInfoEntitys) { if (CollUtil.isNotEmpty(udiInfoEntitys)) { for (UdiInfoEntity udiInfoEntity : udiInfoEntitys) { + udiInfoEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); if (StrUtil.isNotEmpty(udiInfoEntity.getScbssfbhph()) && "否".equals(udiInfoEntity.getScbssfbhph())) { udiInfoEntity.setAllowNoBatch(true); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtils.java b/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtils.java new file mode 100644 index 0000000..0382082 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/UdiInfoUtils.java @@ -0,0 +1,35 @@ +package com.glxp.sale.admin.util; + +import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.sale.admin.entity.inout.WarehouseEntity; +import com.glxp.sale.admin.res.basic.UdiRelevanceResponse; +import com.glxp.sale.admin.service.basic.UdiRelevanceService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class UdiInfoUtils { + + + @Resource + UdiRelevanceService udiRelevanceService; + + public int getActCount(WarehouseEntity warehouseEntity) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(warehouseEntity.getRelId()); + UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(warehouseEntity.getNameCode()); + if (udiInfoBean != null) { + if ((udiRelevanceEntity.getIsUseDy() != null && udiRelevanceEntity.getIsUseDy()) && udiInfoBean.getDiType() != 2) { + if (udiInfoBean.getBhzxxsbzsl() == 0) + return udiInfoBean.getZxxsbzbhsydysl(); + else + return udiInfoBean.getZxxsbzbhsydysl() * udiInfoBean.getBhzxxsbzsl(); + } else { + return udiInfoBean.getBhzxxsbzsl(); + } + } + return 1; + } + + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/gs1/Gs1128Utils.java b/api-admin/src/main/java/com/glxp/sale/admin/util/gs1/Gs1128Utils.java index ef33c18..60ffe87 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/util/gs1/Gs1128Utils.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/gs1/Gs1128Utils.java @@ -7,53 +7,55 @@ import java.util.Iterator; */ final class Gs1128Utils { - public static final String PREFIX = "]C1"; - public static final char END_AI_VARIED = (char) 29; - - private Gs1128Utils() { - super(); - } - - public static Iterator iterator(String value) { - return value.chars().mapToObj(c -> (char) c).iterator(); - } - - public static String value(AI ai, Iterator iterator) { - Format format = Format.valueOf(ai.getFormat()); - if (format.isVaried()) { - return variedValue(iterator); - } else { - return fixedValue(format.getLength(), iterator); + public static final String PREFIX = "]C1"; + public static final char END_AI_VARIED = (char) 29; + + private Gs1128Utils() { + super(); + } + + public static Iterator iterator(String value) { + return value.chars().mapToObj(c -> (char) c).iterator(); } - } - - public static String value(Session session, String value) { - Iterator iterator = iterator(value); - if (session.isVaried()) { - return variedValue(iterator); - } else { - return fixedValue(session.getLength(), iterator); + + public static String value(AI ai, Iterator iterator) { + Format format = Format.valueOf(ai.getFormat()); + if (format.isVaried()) { + return variedValue(iterator); + } else { + return fixedValue(format.getLength(), iterator); + } } - } - private static String fixedValue(int size, Iterator iterator) { - StringBuilder builder = new StringBuilder(); - for (int i = 0; i < size; i++) { - builder.append(iterator.next()); + public static String value(Session session, String value) { + Iterator iterator = iterator(value); + if (session.isVaried()) { + return variedValue(iterator); + } else { + return fixedValue(session.getLength(), iterator); + } } - return builder.toString(); - } - - private static String variedValue(Iterator iterator) { - StringBuilder builder = new StringBuilder(); - while (iterator.hasNext()) { - char value = iterator.next(); - if (value == END_AI_VARIED) { - break; - } - builder.append(value); + + private static String fixedValue(int size, Iterator iterator) { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < size; i++) { + if (iterator.hasNext()) { + builder.append(iterator.next()); + } + } + return builder.toString(); + } + + private static String variedValue(Iterator iterator) { + StringBuilder builder = new StringBuilder(); + while (iterator.hasNext()) { + char value = iterator.next(); + if (value == END_AI_VARIED) { + break; + } + builder.append(value); + } + return builder.toString(); } - return builder.toString(); - } } diff --git a/api-admin/src/main/resources/application-dev.properties b/api-admin/src/main/resources/application-dev.properties index d3db546..c7bd406 100644 --- a/api-admin/src/main/resources/application-dev.properties +++ b/api-admin/src/main/resources/application-dev.properties @@ -1,9 +1,9 @@ # \u751F\u4EA7\u73AF\u5883 server.port=9906 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/spms_za?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true +spring.datasource.jdbc-url=jdbc:mysql://192.168.0.66:3360/spms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root -spring.datasource.password=123456 +spring.datasource.password=root spring.datasource.hikari.connection-timeout=60000 spring.datasource.hikari.maximum-pool-size=60 spring.datasource.hikari.minimum-idle=10 @@ -28,8 +28,8 @@ spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 spring.main.allow-bean-definition-overriding=true spring.redis.database=4 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 +spring.redis.host=192.168.0.66 +spring.redis.port=6400 spring.redis.password= spring.redis.jedis.pool.max-active=8 spring.redis.jedis.pool.max-wait=-1 diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml index 8433a39..2fb203f 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml @@ -498,7 +498,6 @@ #{cpbsbmtxmc}, #{isNewest}, #{updateTime}, - #{hchzsb}, #{cplx}, #{hchzsb}, #{sfwblztlcp}, @@ -567,7 +566,8 @@ #{item.cpms}, #{item.cpbsbmtxmc}, #{item.isNewest}, - #{item.updateTime},#{item.cplx},#{item.hchzsb},#{item.sfwblztlcp},#{item.cgzmraqxgxx},#{item.sfbjwycxsy},#{item.zdcfsycs} + #{item.updateTime},#{item.cplx},#{item.hchzsb},#{item.sfwblztlcp}, + #{item.cgzmraqxgxx},#{item.sfbjwycxsy},#{item.zdcfsycs} ,#{item.sfwwjbz},#{item.syqsfxyjxmj},#{item.qtxxdwzlj},#{item.mjfs} ) diff --git a/api-admin/src/main/resources/mybatis/mapper/info/CompanyProductRelevanceDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/CompanyProductRelevanceDao.xml index f864048..3135b3c 100644 --- a/api-admin/src/main/resources/mybatis/mapper/info/CompanyProductRelevanceDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/info/CompanyProductRelevanceDao.xml @@ -38,7 +38,7 @@ basic_udirel.ybbm,basic_udirel.sptm, basic_udirel.manufactory,basic_udirel.measname,basic_udirel.lockStatus,basic_products.allowNoBatch, basic_products.allowNoExpire, - basic_products.allowNoProduct, + basic_products.allowNoProduct,basic_products.productType, basic_products.nameCode,basic_products.packRatio,basic_products.packLevel,basic_products.bhxjsl, basic_products.bhzxxsbzsl,basic_products.zxxsbzbhsydysl,basic_products.bhxjcpbm, basic_products.bzcj,basic_products.addType,basic_udirel.isDisable, diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDetail.xml b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDetail.xml index 350fcc3..c235362 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDetail.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDetail.xml @@ -137,6 +137,7 @@ invoiceDate=#{invoiceDate}, relId=#{relId}, manufactory=#{manufactory}, + zczbhhzbapzbh=#{zczbhhzbapzbh}, WHERE id = #{id} diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDao.xml index c09ad20..1c1aac8 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDao.xml @@ -30,7 +30,7 @@ AND expireDate = #{expireDate} - AND ylqxzcrbarmc = #{ylqxzcrbarmc} + AND ylqxzcrbarmc like concat('%',#{ylqxzcrbarmc},'%') AND zczbhhzbapzbh = #{zczbhhzbapzbh} @@ -203,13 +203,13 @@ insert INTO inv_prein_product (productsName, nameCode, relIdFk, ggxh, batchNo, productionDate, expireDate, ylqxzcrbarmc, zczbhhzbapzbh, - inCount, outCount, reCount, customerId, supId, unitFk, invStorageCode, invWarehouseCode, price,updateTime) + inCount, outCount, reCount, customerId, supId, unitFk, invStorageCode, invWarehouseCode, price, updateTime) values (#{productsName}, #{nameCode}, #{relIdFk}, #{ggxh}, #{batchNo}, #{productionDate}, #{expireDate}, #{ylqxzcrbarmc}, #{zczbhhzbapzbh}, #{inCount}, #{outCount}, #{reCount}, #{customerId}, #{supId}, #{unitFk} - , #{invStorageCode}, #{invWarehouseCode}, #{price},#{updateTime}) + , #{invStorageCode}, #{invWarehouseCode}, #{price}, #{updateTime}) diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDao.xml index f5bbb38..8c7da62 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDao.xml @@ -29,7 +29,7 @@ AND expireDate = #{expireDate} - AND ylqxzcrbarmc = #{ylqxzcrbarmc} + AND ylqxzcrbarmc like concat('%',#{ylqxzcrbarmc},'%') AND zczbhhzbapzbh = #{zczbhhzbapzbh} diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml index 0b11c5e..27cee70 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml @@ -88,6 +88,9 @@ AND tdi.id = #{id} + + AND tdi.customerId = #{customerId} + AND p.cpmctymc like concat('%', #{name}, '%') @@ -100,7 +103,11 @@ AND p.nameCode = #{code} + + AND tdi.uuid = #{uuid} + + order by tdi.createTime DESC