diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index eb8a7f46b..f31bff7f8 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -46,8 +46,9 @@ public class ConstantStatus { * 审核拒绝 */ public static final Integer ORDER_STATUS_AUDITED_REFUSED = 8; + public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 - public static final Integer ORDER_STATUS_RECEIVEED = 7; +// public static final Integer ORDER_STATUS_RECEIVEED = 7; //订单处理状态 public static final Integer ORDER_DEAL_DRAFT = 1; //草稿 @@ -129,15 +130,15 @@ public class ConstantStatus { public static final int CORP_SICK = 1; //病人 public static final int CORP_SP = 2; //供应商 public static final int CORP_INTTERNAL = 3; //内部科室等 - public static final int CORP_SPECIAL = 4; //内部科室等 + public static final int CORP_SPECIAL = 4; //特俗往来 public static final int CORP_HOSPTIAL = 5; //医院客户 //往来信息类型-单据 - public static final int CORP_TYPE_INPUT = 2; //客户 - public static final int CORP_TYPE_OUT = 0; //供应商 - public static final int CORP_TYPE_INNOR = 1; //内部科室等 - public static final int CORP_TYPE_SPECIAL = 3; + public static final int CORP_TYPE_INPUT = 1; //客户 + public static final int CORP_TYPE_OUT = 2; //供应商 + public static final int CORP_TYPE_INNOR = 3; //内部科室等 + public static final int CORP_TYPE_SPECIAL = 4; //特俗往来 public static final int CORP_TYPE_DEPT = 4; //部门 diff --git a/src/main/java/com/glxp/api/controller/auth/AuthUserController.java b/src/main/java/com/glxp/api/controller/auth/AuthUserController.java index 5d9d8dc45..0eca47ce4 100644 --- a/src/main/java/com/glxp/api/controller/auth/AuthUserController.java +++ b/src/main/java/com/glxp/api/controller/auth/AuthUserController.java @@ -90,9 +90,10 @@ public class AuthUserController extends BaseController { filterInvLinkDataRequest.setKey("1"); List warehouseUserEntities = warehouseUserService.getWarehouseUserList(filterInvLinkDataRequest); List list = new ArrayList<>(); - for (Long aLong : filterInvLinkDataRequest.getListUser()) { - list.add(aLong); - } + if (filterInvLinkDataRequest.getListUser() != null && filterInvLinkDataRequest.getListUser().length > 0) + for (Long aLong : filterInvLinkDataRequest.getListUser()) { + list.add(aLong); + } List warehouseUserEntities1 = warehouseUserService.selectNotSelectUserid(list); List userIds = new ArrayList<>(); for (WarehouseUserEntity warehouseUserEntity : warehouseUserEntities1) { diff --git a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java index cc3b36121..cd9584f3d 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -71,7 +71,7 @@ public class UdiContrastController { if (keys != null && keys.size() > 0) { for (String key : keys) { //关联添加 - if (udiCombineRequest.getRelId() != null || udiCombineRequest.isIdSpliUdi()) { + if (udiCombineRequest.getRelId() == null || udiCombineRequest.isIdSpliUdi()) { if (StrUtil.isNotEmpty(udiCombineRequest.getThirdId())) { if (udiContrastService.isExit(key, udiCombineRequest.getThirdId(), null)) { return ResultVOUtils.error(500, "已存在相同的对照关系,对照失败!"); diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 54a4eca32..aef33a536 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -15,10 +15,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiProductEntity; -import com.glxp.api.entity.inout.IoCodeEntity; -import com.glxp.api.entity.inout.IoCodeTempEntity; -import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; -import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inout.*; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.http.SpsDirectClient; import com.glxp.api.req.basic.CompanyProductRelevanceRequest; @@ -32,10 +29,7 @@ import com.glxp.api.res.basic.UdiRlSupResponse; import com.glxp.api.res.inout.AddCodeResult; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.*; -import com.glxp.api.service.inout.IoCodeTempService; -import com.glxp.api.service.inout.IoOrderDetailCodeService; -import com.glxp.api.service.inout.IoOrderService; -import com.glxp.api.service.inout.IoAddInoutService; +import com.glxp.api.service.inout.*; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.DateUtil; @@ -84,6 +78,8 @@ public class IoCodeTempController extends BaseController { UdiRlSupService udiRlSupService; @Resource InvWarehouseService invWarehouseService; + @Resource + IoCheckInoutService ioCheckInoutService; //手持端扫码单据上传调用接口 @AuthRuleAnnotation("") @@ -506,23 +502,38 @@ public class IoCodeTempController extends BaseController { } List codeEnttitys = codeTempService.findByOrderId(orderId); - IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); IoCodeTempEntity exitLocalEntity = null; + IoCodeTempEntity genDetaiEntity = new IoCodeTempEntity(); + List udiRelevanceResponses = null; if (codeEnttitys.size() > 0) { exitLocalEntity = isExitLocal(code, codeEnttitys); if (exitLocalEntity != null) { - codeEnttity = exitLocalEntity; - codeEnttity.setCount(codeEnttity.getCount() + 1); - if (StringUtils.isBlank(codeEnttity.getSerialNo())) { - codeTempService.updateById(codeEnttity); + udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(exitLocalEntity.getNameCode()); + BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity); + genDetaiEntity.setCount(1); + genDetaiEntity.setReCount(udiCalCountUtil.getActCount(udiRelevanceResponses.get(0))); + + exitLocalEntity.setCount(exitLocalEntity.getCount() + 1); + exitLocalEntity.setReCount(exitLocalEntity.getCount() * udiCalCountUtil.getActCount(udiRelevanceResponses.get(0))); + if (StringUtils.isBlank(exitLocalEntity.getSerialNo())) { + if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { + String errMsg = ioCheckInoutService.checkCode(exitLocalEntity); + if (errMsg != null) { + return ResultVOUtils.error(500, errMsg); + } else + codeTempService.updateById(exitLocalEntity); + } else { + codeTempService.updateById(exitLocalEntity); + } + } else { return ResultVOUtils.error(ResultEnum.DATA_REPEAT); } } } - if (exitLocalEntity == null) { + IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); codeEnttity.setCode(code); codeEnttity.setOrderId(orderId); codeEnttity.setCorpOrderId(addOrderRequest.getCorpOrderId()); @@ -543,12 +554,12 @@ public class IoCodeTempController extends BaseController { unitFk = addOrderRequest.getFromCorp(); } //产品是否可以以使用单元入库 - List udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(codeEnttity.getNameCode(), unitFk); + udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode()); if (udiRelevanceResponses.size() == 1) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); - } else if (!udiRelevanceResponse.getIsUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { + } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { return ResultVOUtils.error(500, "该产品不允许以使用单元入库!"); } //计算实际数量 @@ -560,14 +571,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "当前供应商不存在此配送产品!"); } - //校验供应商是否配送此产品 BaseResponse corpResponse = checkCorp(codeEnttity, bussinessTypeEntity, unitFk); if (corpResponse != null) { return corpResponse; } - IoOrderEntity isExit = orderService.findByBillNo(orderId); if (isExit == null) { orderEntity = new IoOrderEntity(); @@ -591,8 +600,18 @@ public class IoCodeTempController extends BaseController { orderService.insertOrder(orderEntity); } + BaseResponse baseResponse = checkRelId(codeEnttity, unitFk); - codeEnttity = codeTempService.findByUnique(codeEnttity.getOrderId(), codeEnttity.getCode()); + if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()){ + String errMsg = ioCheckInoutService.checkCode(codeEnttity); + if (errMsg != null) { + return ResultVOUtils.error(500, errMsg); + } else + codeTempService.insert(codeEnttity); + } else { + codeTempService.insert(codeEnttity); + } + genDetaiEntity = codeEnttity; if (baseResponse == null) { baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); if (baseResponse != null) @@ -608,7 +627,7 @@ public class IoCodeTempController extends BaseController { } } addCodeResult.setOrderId(orderId); - transInoutService.genOrderDetailCode(orderEntity, codeEnttity); + transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); return ResultVOUtils.success(addCodeResult); } @@ -673,7 +692,6 @@ public class IoCodeTempController extends BaseController { codeEnttity.setStatus(0); if (codeEnttity.getRelId() == null) codeEnttity.setRelId(udiRelevanceEntities.get(0).getId()); - codeTempService.insert(codeEnttity); } return null; @@ -776,28 +794,24 @@ public class IoCodeTempController extends BaseController { } //更新扫码详情 - List orderDetailCodeEntities = ioOrderDetailCodeService.findByOrderId(codeTempEntity.getOrderId()); - if (CollUtil.isNotEmpty(orderDetailCodeEntities)) { - for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { - if (orderDetailCodeEntity.getBindRlFk() == codeTempEntity.getRelId() && StrUtil.trimToEmpty(orderDetailCodeEntity.getBatchNo()).equals(codeTempEntity.getBatchNo())) { - //扫码数量-1 - int orderCount = orderDetailCodeEntity.getCount(); - int orderReCount = orderDetailCodeEntity.getReCount(); - if (orderCount > 1) { - orderDetailCodeEntity.setCount(orderCount - codeTempEntity.getCount()); - orderDetailCodeEntity.setCount(orderReCount - codeTempEntity.getReCount()); - ioOrderDetailCodeService.update(orderDetailCodeEntity); - } else { - ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId()); - } - } + IoOrderDetailCodeEntity orderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(orderEntity.getBillNo(), codeTempEntity.getRelId(), codeTempEntity.getBatchNo()); + if (orderDetailCodeEntity != null) { + //扫码数量-1 + int orderCount = orderDetailCodeEntity.getCount(); + int orderReCount = orderDetailCodeEntity.getReCount(); + if (orderCount > 1) { + orderDetailCodeEntity.setCount(orderCount - codeTempEntity.getCount()); + orderDetailCodeEntity.setReCount(orderReCount - codeTempEntity.getReCount()); + ioOrderDetailCodeService.update(orderDetailCodeEntity); + } else { + ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId()); } } orderEntity.setUpdateUser(getUserId() + ""); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); - return ResultVOUtils.success(); + return ResultVOUtils.success("删除成功!"); } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 73d5a5eec..b1bd185e8 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -7,9 +7,11 @@ import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; import com.glxp.api.dao.inout.IoOrderDetailBizDao; import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderEntity; @@ -19,6 +21,7 @@ import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; +import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoOrderDetailBizService; @@ -52,7 +55,7 @@ public class IoOrderDetailBizController extends BaseController { @Resource private IBasicBussinessTypeService basicBussinessTypeService; @Resource - IoOrderDetailBizDao ioOrderDetailBizDao; + InvWarehouseService invWarehouseService; //获取单据业务详情---临时接口查询 @AuthRuleAnnotation("") @@ -79,16 +82,30 @@ public class IoOrderDetailBizController extends BaseController { IoOrderEntity orderEntity = addBizProductReqeust.getOrderEntity(); if (StrUtil.isEmpty(orderEntity.getBillNo())) { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); orderEntity.setBillNo(orderNo); orderEntity.setCreateUser(authAdmin.getId() + ""); orderEntity.setCreateTime(new Date()); + orderEntity.setMainAction(bussinessTypeEntity.getMainAction()); + orderEntity.setFromType(ConstantStatus.FROM_WEBNEW); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setCreateUser(authAdmin.getId() + ""); + orderEntity.setCreateTime(new Date()); + orderEntity.setUpdateUser(authAdmin.getId() + ""); + orderEntity.setUpdateTime(new Date()); + orderEntity.setCustomerId(authAdmin.getCustomerId() + ""); + orderEntity.setDeptCode(invWarehouseEntity.getParentId()); + orderEntity.setInvCode(orderEntity.getInvCode()); + orderService.insertOrder(orderEntity); } UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(addBizProductReqeust.getRelId()); IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo()); ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId()); ioOrderDetailBizEntity.setUuidFk(udiRelevanceResponse.getUuid()); + ioOrderDetailBizEntity.setNameCode(udiRelevanceResponse.getNameCode()); ioOrderDetailBizEntity.setCoName(udiRelevanceResponse.getCpmctymc()); ioOrderDetailBizEntity.setCertCode(udiRelevanceResponse.getZczbhhzbapzbh()); ioOrderDetailBizEntity.setYlqxzcrbarmc(udiRelevanceResponse.getYlqxzcrbarmc()); @@ -96,10 +113,11 @@ public class IoOrderDetailBizController extends BaseController { ioOrderDetailBizEntity.setMeasname(udiRelevanceResponse.getMeasname()); ioOrderDetailBizEntity.setSpec(udiRelevanceResponse.getGgxh()); ioOrderDetailBizEntity.setPrice(udiRelevanceResponse.getPrice()); + ioOrderDetailBizEntity.setSupId(addBizProductReqeust.getSupId()); orderDetailBizService.insert(ioOrderDetailBizEntity); orderEntity.setUpdateTime(new Date()); orderEntity.setUpdateUser(authAdmin.getId() + ""); - orderService.insertOrUpdate(orderEntity); + orderService.update(orderEntity); return ResultVOUtils.success(orderEntity); } diff --git a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java index d2eeae02a..f243a38b3 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -74,4 +74,7 @@ public interface UdiRelevanceDao extends BaseMapperPlus selectGroupByNameCode(@Param("nameCode") String nameCode); } diff --git a/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java b/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java index 0562c3470..3ff6b5d77 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java @@ -11,7 +11,7 @@ import java.util.Date; @Data @TableName(value = "inv_product") public class InvProductEntity { - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Integer id; /** diff --git a/src/main/java/com/glxp/api/req/inout/AddBizProductReqeust.java b/src/main/java/com/glxp/api/req/inout/AddBizProductReqeust.java index 0daf33ca5..1dbec15b2 100644 --- a/src/main/java/com/glxp/api/req/inout/AddBizProductReqeust.java +++ b/src/main/java/com/glxp/api/req/inout/AddBizProductReqeust.java @@ -9,5 +9,6 @@ public class AddBizProductReqeust { private IoOrderEntity orderEntity; private Long relId; private String zczbhhzbapzbh; + private String supId; } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index f8de75485..6af2b165c 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -113,4 +113,11 @@ public class UdiRelevanceResponse { return false; return allowNoProduct; } + + + public Boolean getUseDy() { + if (isUseDy == null) + return false; + return isUseDy; + } } diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java index 65b616c05..c890363ad 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -4,6 +4,7 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -74,4 +75,7 @@ public interface UdiRelevanceService { * @return */ String findUuidById(String relId); + + + List selectGroupByNameCode(String nameCode); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicProductsImportLogServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicProductsImportLogServiceImpl.java index fafdfa04a..c5fbf29d8 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicProductsImportLogServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicProductsImportLogServiceImpl.java @@ -358,7 +358,7 @@ public class BasicProductsImportLogServiceImpl implements BasicProductsImportLog BeanUtils.copyProperties(udiRelevanceResponse, udiInfoImportEntity); udiInfoImportEntity.setUpdateTime(new Date()); udiInfoImportEntity.setGenKeyFk(genKey); - if (udiRelevanceResponse.getIsUseDy()) { + if (udiRelevanceResponse.getUseDy()) { udiInfoImportEntity.setIsUseDy("是"); } else { udiInfoImportEntity.setIsUseDy("否"); diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java index fd5b4359a..d5839fabb 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.basic.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; @@ -14,6 +15,7 @@ import com.glxp.api.service.thrsys.ThrSystemService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -23,8 +25,6 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { UdiRelevanceDao udiRelevanceDao; @Resource ThrSystemService basicThirdSysService; - @Resource - private UdiProductDao udiProductDao; @Override public List filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest) { @@ -82,11 +82,15 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { @Override public List selectAllByNameCode(String nameCode, String unitFk) { - - FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); - filterUdiRelRequest.setUniqueNameCode(nameCode); - filterUdiRelRequest.setUnitFk(unitFk); - List udiRelevanceResponses = filterUdiJoinSup(filterUdiRelRequest); + List udiRelevanceResponses; + if (StrUtil.isNotEmpty(unitFk)) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setUniqueNameCode(nameCode); + filterUdiRelRequest.setUnitFk(unitFk); + udiRelevanceResponses = filterUdiJoinSup(filterUdiRelRequest); + } else { + udiRelevanceResponses = selectGroupByNameCode(nameCode); + } if (udiRelevanceResponses.size() == 1) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null || udiRelevanceResponse.getProductType() == ConstantStatus.PRODUCT_TYPE_THIRD) { @@ -312,4 +316,9 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { public String findUuidById(String relId) { return udiRelevanceDao.selectUuidById(relId); } + + @Override + public List selectGroupByNameCode(String nameCode) { + return udiRelevanceDao.selectGroupByNameCode(nameCode); + } } diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index eb0c8a316..370f9e2a3 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -207,7 +207,7 @@ public class IoAddInoutService { } else { ioOrderDetailCodeEntities.forEach(orderDetailCodeEntity -> { - if (orderDetailCodeEntity.getBindRlFk() == udiRelevanceResponse.getId() && orderDetailCodeEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) { + if (orderDetailCodeEntity.getBindRlFk().longValue() == udiRelevanceResponse.getId().longValue() && orderDetailCodeEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) { orderDetailCodeEntity.setCount(orderDetailCodeEntity.getCount() + codeTempEntity.getCount()); orderDetailCodeEntity.setReCount(orderDetailCodeEntity.getReCount() + codeTempEntity.getReCount()); orderDetailCodeService.update(orderDetailCodeEntity); @@ -233,6 +233,7 @@ public class IoAddInoutService { ioOrderDetailCodeEntity.setManufacturer(udiRelevanceResponse.getManufactory()); ioOrderDetailCodeEntity.setMeasname(udiRelevanceResponse.getMeasname()); ioOrderDetailCodeEntity.setSpec(udiRelevanceResponse.getGgxh()); + ioOrderDetailCodeEntity.setSupId(codeTempEntity.getSupId()); ioOrderDetailCodeEntity.setPrice(udiRelevanceResponse.getPrice()); ioOrderDetailCodeEntity.setCount(codeTempEntity.getCount()); ioOrderDetailCodeEntity.setReCount(codeTempEntity.getReCount()); diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 80d5a1c10..697254adf 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -2,6 +2,8 @@ package com.glxp.api.service.inout; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; @@ -102,6 +104,22 @@ public class IoCheckInoutService { } } + public String checkCode(IoCodeTempEntity codeEntity) { + IoOrderDetailBizEntity bizEntity = orderDetailBizService.findByUnique(codeEntity.getOrderId(), codeEntity.getRelId(), codeEntity.getBatchNo()); + if (bizEntity == null) { + return "非此单产品!"; + } + IoOrderDetailCodeEntity orderDetailCodeEntity = orderDetailCodeService.findByUnique(codeEntity.getOrderId(), codeEntity.getRelId(), codeEntity.getBatchNo()); + int curCount = 0; + if (orderDetailCodeEntity != null) { + curCount = orderDetailCodeEntity.getReCount() + codeEntity.getReCount(); + } + if (curCount > bizEntity.getCount()) { + return "当前产品数量超出!"; + } + return null; + } + //一次校验(无需校验)完成 public void unCheckFirstFinish(IoOrderEntity orderEntity) { @@ -176,6 +194,7 @@ public class IoCheckInoutService { if (checkCount(bizEntity, codeEntity) == null) { bizEntity.setCheckSuccess(true); + bizEntity.setScanCount(codeEntity.getReCount()); codeEntity.setCheckSuccess(true); } break; @@ -223,6 +242,7 @@ public class IoCheckInoutService { for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity(); BeanUtils.copyProperties(orderDetailBizEntity, orderDetailResultEntity); + orderDetailResultEntity.setReCount(orderDetailBizEntity.getScanCount()); orderDetailResultService.insert(orderDetailResultEntity); } @@ -312,41 +332,41 @@ public class IoCheckInoutService { if (bussinessTypeEntity.isSecCheckEnable()) { if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) { if (!bussinessTypeEntity.isSecCheckUdims()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) { if (!bussinessTypeEntity.isSecCheckWebNew()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) { if (!bussinessTypeEntity.isSecCheckPdaEd()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) { if (!bussinessTypeEntity.isSecCheckPdaUn()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { if (!bussinessTypeEntity.isSecCheckPc()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { if (!bussinessTypeEntity.isSecCheckChange()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) { if (!bussinessTypeEntity.isSecCheckBalance()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) { if (!bussinessTypeEntity.isSecCheckCopy()) { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } } } else { - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); } - if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_RECEIVEED) { + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); genInv(orderEntity, bussinessTypeEntity); @@ -410,18 +430,18 @@ public class IoCheckInoutService { } public String checkProductDate(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) { - if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { + if (StrUtil.nullToEmpty(bizEntity.getProductDate()).equals(StrUtil.nullToEmpty(codeEntity.getProductDate()))) { return null; } else { - return bizEntity.getCoName() + "批次号不匹配"; + return bizEntity.getCoName() + "生产日期不匹配"; } } public String checkExpireDate(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) { - if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { + if (StrUtil.nullToEmpty(bizEntity.getExpireDate()).equals(StrUtil.nullToEmpty(codeEntity.getExpireDate()))) { return null; } else { - return bizEntity.getCoName() + "批次号不匹配"; + return bizEntity.getCoName() + "失效日期不匹配"; } } diff --git a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java index 31fcef0cc..8f4c6458c 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -102,9 +102,9 @@ public class IoGenInvService { invProductEntity.setInCount(invProductEntity.getInCount() + orderDetailResultEntity.getReCount()); } invProductEntity.setUpdateTime(new Date()); - invProductEntities.add(invProductEntity); +// invProductEntities.add(invProductEntity); + invProductService.update(invProductEntity); } - invProductService.updateBatch(invProductEntities); //生成库存码详情 List invProductDetailEntities = new ArrayList<>(); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java index e2fbf233b..f42009b7c 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java @@ -20,6 +20,8 @@ public interface IoOrderDetailBizService { boolean isExit(Long relId, String bacthNo, Integer ignoreId); + IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo); + List filterList(FilterOrderDetailBizRequest orderDetailBizRequest); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java index ff690d8f2..9fe63e0f4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java @@ -12,6 +12,8 @@ public interface IoOrderDetailCodeService { List findByOrderId(String orderId); + IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo); + int insert(IoOrderDetailCodeEntity orderDetailCodeEntity); int update(IoOrderDetailCodeEntity orderDetailCodeEntity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index e4c96c988..4769b5157 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -53,6 +53,11 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { return ioOrderDetailBizDao.exists(new QueryWrapper().eq("bindRlFk", relId).eq("batchNo", bacthNo).ne("id", ignoreId)); } + @Override + public IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo) { + return ioOrderDetailBizDao.selectOne(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq("batchNo", bacthNo)); + } + @Override public List filterList(FilterOrderDetailBizRequest orderDetailBizRequest) { if (null == orderDetailBizRequest) { diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java index adb688882..9e22451df 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java @@ -31,6 +31,11 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService { return ioOrderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderId)); } + @Override + public IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo) { + return ioOrderDetailCodeDao.selectOne(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq("batchNo", bacthNo)); + } + @Override public int insert(IoOrderDetailCodeEntity orderDetailCodeEntity) { return ioOrderDetailCodeDao.insert(orderDetailCodeEntity); diff --git a/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java b/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java index 5cae64178..c3be7df82 100644 --- a/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java +++ b/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java @@ -37,7 +37,9 @@ public class FilterUdiUtils { Gs1128Decoder decoder = engine.decoder(); Map result = decoder.decode("]C1" + data); UdiEntity udiEntity = new UdiEntity(); + int length = 0; for (Map.Entry entry : result.entrySet()) { + length = length + entry.getValue().length(); if (entry.getKey() == AIs.GTIN) { udiEntity.setUdi(entry.getValue()); } else if (entry.getKey() == AIs.BATCH_LOT) { @@ -50,6 +52,9 @@ public class FilterUdiUtils { udiEntity.setSerialNo(entry.getValue()); } } + if (data.length() - length > 22) { + return null; + } if (StrUtil.isEmpty(udiEntity.getUdi())) { return null; } else diff --git a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java index d0eb94c44..ab7cbfc5c 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java @@ -20,10 +20,16 @@ public class UdiCalCountUtil { public int getActCount(UdiRelevanceResponse udiRelevanceResponse) { int actCount; - if (!udiRelevanceResponse.getIsUseDy() && udiRelevanceResponse.getDiType() != 2) { + if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() != 2) { if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { actCount = udiRelevanceResponse.getZxxsbzbhsydysl(); } else { + if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { + udiRelevanceResponse.setBhzxxsbzsl(1); + } + if (udiRelevanceResponse.getZxxsbzbhsydysl() == 0) { + udiRelevanceResponse.setZxxsbzbhsydysl(1); + } actCount = udiRelevanceResponse.getBhzxxsbzsl() * udiRelevanceResponse.getZxxsbzbhsydysl(); } } else { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index c7e9cd220..c450cfd9b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: 123456 + password: Glxp@6066 hikari: connection-timeout: 60000 maximum-pool-size: 60 @@ -17,7 +17,7 @@ spring: database: 8 host: 127.0.0.1 port: 6379 -# password: 123456 + # password: 123456 timeout: 300 jedis: pool: diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 03c19ec05..512523f9a 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -244,7 +244,7 @@ #{item.basicPrductRemak5}, #{item.basicPrductRemak6}, #{item.basicPrductRemak7}, - #{item.basicPrductRemak8}, + #{item.basicPrductRemak8} ) diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index 51cabc953..4047623cc 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -118,6 +118,7 @@ ORDER BY modifyTime DESC + + select basic_udirel.*, + basic_products.originUuid, + basic_products.nameCode, + basic_products.deviceRecordKey, + basic_products.packRatio, + basic_products.packUnit, + basic_products.packLevel, + basic_products.bhxjsl, + basic_products.bhzxxsbzsl, + basic_products.zxxsbzbhsydysl, + basic_products.bhxjcpbm, + basic_products.bzcj, + basic_products.cpmctymc, + basic_products.cplb, + basic_products.flbm, + basic_products.ggxh, + basic_products.qxlb, + basic_products.tyshxydm, + basic_products.ylqxzcrbarmc, + basic_products.zczbhhzbapzbh, + basic_products.ylqxzcrbarywmc, + basic_products.sydycpbs, + basic_products.sjcpbm, + basic_products.versionNumber, + basic_products.diType, + basic_products.ybbm, + basic_products.sptm, + basic_products.manufactory, + basic_products.measname, + basic_products.productType, + basic_products.scbssfbhph, + basic_products.scbssfbhxlh, + basic_products.scbssfbhscrq, + basic_products.scbssfbhsxrq, + basic_products.cpms, + basic_products.allowNoBatch, + basic_products.allowNoExpire, + basic_products.allowNoProduct, + basic_products.spmc, + basic_products.cplx, + basic_products.hchzsb, + basic_products.cpdls, + basic_products.price, + basic_products.basicPrductRemak1, + basic_products.basicPrductRemak2, + basic_products.basicPrductRemak3, + basic_products.basicPrductRemak4, + basic_products.basicPrductRemak5, + basic_products.basicPrductRemak6, + basic_products.basicPrductRemak7, + basic_products.basicPrductRemak8 + FROM basic_udirel + INNER JOIN basic_products + on basic_udirel.uuid = basic_products.uuid + WHERE nameCode = #{nameCode} + group by basic_udirel.id + \ No newline at end of file