diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 0388c260b..c9368fc65 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -6,7 +6,7 @@ package com.glxp.api.constant; public class ConstantStatus { //订单状态 - public static final Integer ORDER_STATUS_TEMP_SAVE = -1; //等待提交 + public static final Integer ORDER_STATUS_TEMP_SAVE = -1; //等待提交(草稿) public static final Integer ORDER_STATUS_PROCESS = 1; //等待处理 public static final Integer ORDER_STATUS_CHECK = 2; //等待校验 public static final Integer ORDER_STATUS_FAIL = 3; //重码校验失败 @@ -14,6 +14,11 @@ public class ConstantStatus { public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 public static final Integer ORDER_STATUS_DOING = 6; + //订单处理状态 + public static final Integer ORDER_DEAL_DRAFT = 1; //草稿 + public static final Integer ORDER_DEAL_POST = 2; //已提交 + public static final Integer ORDER_DEAL_CHECK = 3; //已审核 + //ERP校验状态 public static final Integer ORDER_CHECK_SUCCESS = 2; //校验成功 public static final Integer ORDER_CHECK_FAIL = 1; //校验失败 diff --git a/src/main/java/com/glxp/api/controller/BaseController.java b/src/main/java/com/glxp/api/controller/BaseController.java index fb86e089e..2f6630fa4 100644 --- a/src/main/java/com/glxp/api/controller/BaseController.java +++ b/src/main/java/com/glxp/api/controller/BaseController.java @@ -33,4 +33,14 @@ public class BaseController { return customerService.getUserBean(); } + public Long getUserId() { + AuthAdmin authAdmin = getUser(); + return authAdmin.getId(); + } + + public Long getCustomerId() { + AuthAdmin authAdmin = getUser(); + return authAdmin.getCustomerId(); + } + } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 797f6e552..81384cb16 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -5,13 +5,16 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.req.basic.BussinessTypeSaveRequest; import com.glxp.api.req.basic.FilterBussinessTypeRequest; import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicBussinessTypeResponse; import com.glxp.api.res.basic.BussinessTypExportResponse; import com.glxp.api.res.basic.CandidateRequest; @@ -39,7 +42,7 @@ import java.util.List; */ @Slf4j @RestController -public class BasicBussinessTypeController { +public class BasicBussinessTypeController extends BaseController { @Resource private IBasicBussinessTypeService basicBussinessTypeService; @@ -124,6 +127,28 @@ public class BasicBussinessTypeController { return ResultVOUtils.success("更新成功"); } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/localBusType/filterJoinByUser") + public BaseResponse filterJoinByUser(FilterBussinessTypeRequest bussinessTypeFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + bussinessTypeFilterRequest.setUserId(getUserId()); + List bussinessTypeEntities; + bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser( + bussinessTypeFilterRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(bussinessTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(bussinessTypeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** * 删除单据类型 * diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java new file mode 100644 index 000000000..2ee49113e --- /dev/null +++ b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java @@ -0,0 +1,203 @@ +package com.glxp.api.controller.basic; + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.basic.BasicCorpEntity; +import com.glxp.api.entity.basic.UdiRlSupEntity; +import com.glxp.api.exception.JsonException; +import com.glxp.api.req.basic.CompanyProductRelevanceRequest; +import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.UdiInfoExportRequest; +import com.glxp.api.req.system.CompanyRequest; +import com.glxp.api.req.system.DeleteCompanyFileRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.UdiRlSupResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.auth.AuthAdminService; +import com.glxp.api.service.basic.BasicUnitMaintainService; +import com.glxp.api.service.basic.UdiRlSupService; +import com.glxp.api.service.basic.CompanyProductsRelService; +import com.glxp.api.service.basic.UdiRelevanceService; +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.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 供应商关联耗材字典信息 + */ +@RestController +public class UdiRlSupController { + @Resource + private AuthAdminService authAdminService; + @Resource + private UdiRlSupService udiRlSupService; + @Resource + private CompanyProductsRelService companyProductsRelService; + @Resource + private BasicUnitMaintainService basicUnitMaintainService; + + @Resource + private UdiRelevanceService udiRelevanceService; + + @AuthRuleAnnotation("") + @GetMapping("/sale/info/company/product/relevance/filter") + public BaseResponse filterCompanyProductRelevance(CompanyProductRelevanceRequest companyProductRelevanceRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUnionCode())) { + FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); + filterUdiInfoRequest.setNameCode(companyProductRelevanceRequest.getUnionCode()); + List temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + if (temps != null && temps.size() > 0) { + companyProductRelevanceRequest.setUuid(temps.get(0).getUuid()); + companyProductRelevanceRequest.setNameCode(filterUdiInfoRequest.getNameCode()); + companyProductRelevanceRequest.setUnionCode(null); + } + } else { + companyProductRelevanceRequest.setDiType(1); + } + List basicInstrumentMaintainRelevanceResponses = null; + basicInstrumentMaintainRelevanceResponses = udiRlSupService.filterUdiGp(companyProductRelevanceRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(basicInstrumentMaintainRelevanceResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(basicInstrumentMaintainRelevanceResponses); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("") + @GetMapping("/sale/info/company/product/corp/filter") + public BaseResponse filterRlCorp(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (StrUtil.isEmpty(filterCompanyProductRelevanceRequest.getUdiRlIdFk())) { + return ResultVOUtils.error(500, "请先选择产品!"); + } + List companyProductRelevanceEntities = + udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); + + if (!companyProductRelevanceEntities.isEmpty()) { + List erpIds = new ArrayList<>(); + for (UdiRlSupEntity udiRlSupEntity : companyProductRelevanceEntities) { + erpIds.add(udiRlSupEntity.getUnitFk()); + } + List basicUnitMaintainEntities = basicUnitMaintainService.batchSelectByErpIdsAndName(erpIds, filterCompanyProductRelevanceRequest.getKey()); + return ResultVOUtils.success(basicUnitMaintainEntities); + } + return ResultVOUtils.error(500, "该产品未关联供应商!"); + + } + + @AuthRuleAnnotation("") + @GetMapping("/spms/info/company/product/filterAll") + public BaseResponse filterAll(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List companyProductRelevanceEntities = + udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(companyProductRelevanceEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(companyProductRelevanceEntities); + return ResultVOUtils.success(pageSimpleResponse); + + } + + + @AuthRuleAnnotation("") + @GetMapping("/sale/info/companyProductRelevance") + public BaseResponse getCompanyProductRelevanceInfo(CompanyRequest companyRequest) { + UdiRlSupEntity udiRlSupEntity = udiRlSupService.findCompanyProductRelevance(companyRequest.getCustomerId()); + if (udiRlSupEntity != null) { + return ResultVOUtils.success(udiRlSupEntity); + } + return ResultVOUtils.error(500, "空"); + } + + @AuthRuleAnnotation("") + @GetMapping("/sale/info/getCompanyProductRelevance") + public BaseResponse getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest) { +// filterCompanyProductRelevanceRequest.setCustomerId(getCustomerId()); + List companyProductRelevanceEntities = udiRlSupService.getCompanyProductRelevance(filterCompanyProductRelevanceRequest); + PageInfo pageInfo = new PageInfo<>(companyProductRelevanceEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(companyProductRelevanceEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("") + @PostMapping("/sale/info/insertCompanyProductRelevance") + public BaseResponse insertCompanyProductRelevance(@RequestBody UdiRlSupEntity udiRlSupEntity) { + if (udiRlSupService.findCompanyProductRelevanceByProductUuid(udiRlSupEntity) != null) { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT); + } + udiRlSupEntity.setUnitFk(null); + udiRlSupEntity.setCreateTime(new Date()); + udiRlSupEntity.setUpdateTime(new Date()); + udiRlSupEntity.setAuditStatus("3"); + boolean b = udiRlSupService.insertCompanyProductRelevance(udiRlSupEntity); + return ResultVOUtils.success("成功"); + } + + @AuthRuleAnnotation("") + @PostMapping("/sale/info/insertFilter") + public BaseResponse insertFilter(@RequestBody UdiInfoExportRequest udiInfoExportRequest) { + if (StrUtil.isEmpty(udiInfoExportRequest.getUnitFk())) { + return ResultVOUtils.error(500, "未选择供应商!"); + } + companyProductsRelService.insertCompanyProducts(udiInfoExportRequest); + return ResultVOUtils.success("后台正在导入,请稍后刷新查看!"); + } + + @AuthRuleAnnotation("") + @PostMapping("/sale/info/updateCompanyProductRelevance") + public BaseResponse updateCompanyProductRelevance(@RequestBody UdiRlSupEntity udiRlSupEntity) { + udiRlSupEntity.setUpdateTime(new Date()); + int b = udiRlSupService.updateCompanyProductRelevance(udiRlSupEntity); + return ResultVOUtils.success("修改成功"); + } + + @PostMapping("/sale/info/deleteCompanyProductRelevance") + public BaseResponse deleteCompanyProductRelevance(@RequestBody DeleteCompanyFileRequest deleteCompanyFileRequest, BindingResult bindingResult) { + boolean b = udiRlSupService.deleteById(deleteCompanyFileRequest.getId()); + 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() + ""; + } +} diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeController.java new file mode 100644 index 000000000..aabdbc236 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeController.java @@ -0,0 +1,750 @@ +package com.glxp.api.controller.inout; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.enums.ResultEnum; +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.entity.auth.AuthAdmin; +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.IoCodeEnttity; +import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.system.SystemParamConfigEntity; +import com.glxp.api.http.SpsDirectClient; +import com.glxp.api.req.basic.CompanyProductRelevanceRequest; +import com.glxp.api.req.inout.AddEnterCodeRequest; +import com.glxp.api.req.inout.AddOrderRequest; +import com.glxp.api.req.inout.PostOrderRequest; +import com.glxp.api.res.basic.UdiRlSupResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.inout.AddCodeResult; +import com.glxp.api.service.basic.*; +import com.glxp.api.service.inout.IoCodeService; +import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.service.inout.IoTransInoutService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.CustomUtil; +import com.glxp.api.util.DateUtil; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiCalCountUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +@RestController +public class IoCodeController extends BaseController { + + + @Resource + private IoCodeService codesService; + @Resource + private IoOrderService orderService; + @Resource + private IBasicBussinessTypeService basicBussinessTypeService; + @Resource + private SpsDirectClient spsDirectClient; + @Resource + IoTransInoutService transInoutService; + @Resource + private SystemParamConfigService systemParamConfigService; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiProductService udiProductService; + @Resource + BasicUnitMaintainService basicUnitMaintainService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + UdiCalCountUtil udiCalCountUtil; + @Resource + UdiRlSupService udiRlSupService; + + //手持端扫码单据上传调用接口 + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/postOrders") + + public BaseResponse postOrders(@RequestBody PostOrderRequest postOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + Long userId = getUserId(); + try { + PostOrderRequest inPostOrder = new PostOrderRequest(); + List inPostOrders = new ArrayList<>(); + PostOrderRequest outPostOrder = new PostOrderRequest(); + List outPostOrders = new ArrayList<>(); + + List postOrders = postOrderRequest.getPostOrders(); + if (postOrders != null && postOrders.size() > 0) { + for (PostOrderRequest.PostOrder postOrder : postOrders) { + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(postOrder.getCodes().get(0).getAction()); + if (bussinessTypeEntity.isOutToSpms()) { + outPostOrders.add(postOrder); + } else { + inPostOrders.add(postOrder); + } + } + } + + BeanUtils.copyProperties(postOrderRequest, inPostOrder); + BeanUtils.copyProperties(postOrderRequest, outPostOrder); + inPostOrder.setPostOrders(inPostOrders); + outPostOrder.setPostOrders(outPostOrders); + + if (CollUtil.isNotEmpty(outPostOrders)) { + outPostOrder.setWmsUserId(userId + ""); + return spsDirectClient.uploadPdaOrder(outPostOrder); + } + + if (CollUtil.isNotEmpty(inPostOrders)) { + inPostOrder.setCustomerId(getCustomerId()); + inPostOrder.setUserId(userId); + transInoutService.creatOrderByPda(inPostOrder); + } + + + } catch (Exception e) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success("上传成功,等待后台处理"); + } + + + //前端扫码完整性校验 + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/enterCode") + public BaseResponse addEndterCode(@RequestBody AddEnterCodeRequest addEnterCodeRequest) { + + if (StrUtil.isEmpty(addEnterCodeRequest.getCode())) { + return ResultVOUtils.error(500, "条码不能为空!"); + } + String code = ""; + String originCode = addEnterCodeRequest.getOriginCode(); + if (originCode == null) + originCode = ""; + code = originCode + addEnterCodeRequest.getCode(); + String newCode = addEnterCodeRequest.getCode(); + //重复判断 + if (StrUtil.isNotEmpty(addEnterCodeRequest.getOriginCode())) { + String tempOriginCode = addEnterCodeRequest.getOriginCode(); + if (tempOriginCode.endsWith("\u001D")) { + tempOriginCode = tempOriginCode.replace("\u001D", ""); + } + UdiEntity originUdiEntity = FilterUdiUtils.getUdi(tempOriginCode); + if (StrUtil.isNotEmpty(newCode)) { + if (newCode.startsWith("10")) { + if (StrUtil.isNotEmpty(originUdiEntity.getBatchNo())) { + BaseResponse baseResponse = ResultVOUtils.error(501, "批次号重复添加"); + baseResponse.setData(originCode); + return baseResponse; + } else { + String msg = checkNewCode(originUdiEntity, newCode); + if (msg != null) { + BaseResponse baseResponse = ResultVOUtils.error(501, msg); + baseResponse.setData(originCode); + return baseResponse; + } + } + } else if (newCode.startsWith("17")) { + if (StrUtil.isNotEmpty(originUdiEntity.getExpireDate())) { + BaseResponse baseResponse = ResultVOUtils.error(501, "失效日期重复添加"); + baseResponse.setData(originCode); + return baseResponse; + } else { + String msg = checkNewCode(originUdiEntity, newCode); + if (msg != null) { + BaseResponse baseResponse = ResultVOUtils.error(501, msg); + baseResponse.setData(originCode); + return baseResponse; + } + } + } else if (newCode.startsWith("11")) { + if (StrUtil.isNotEmpty(originUdiEntity.getProduceDate())) { + BaseResponse baseResponse = ResultVOUtils.error(501, "生产日期重复添加"); + baseResponse.setData(originCode); + return baseResponse; + } else { + String msg = checkNewCode(originUdiEntity, newCode); + if (msg != null) { + BaseResponse baseResponse = ResultVOUtils.error(501, msg); + baseResponse.setData(originCode); + return baseResponse; + } + } + } else if (newCode.startsWith("21")) { + if (StrUtil.isNotEmpty(originUdiEntity.getSerialNo())) { + BaseResponse baseResponse = ResultVOUtils.error(501, "序列号重复添加"); + baseResponse.setData(originCode); + return baseResponse; + } else { + String msg = checkNewCode(originUdiEntity, newCode); + if (msg != null) { + BaseResponse baseResponse = ResultVOUtils.error(501, msg); + baseResponse.setData(originCode); + return baseResponse; + } + } + } else { + BaseResponse baseResponse = ResultVOUtils.error(501, "格式错误"); + baseResponse.setData(originCode); + return baseResponse; + } + + + } + } + + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + if (udiEntity == null) { + String sptmtodi = systemParamConfigService.selectValueByParamKey(Constant.SPTM_TO_DI); + if (sptmtodi.equals("1")) { + if (code.length() == 13) { + UdiProductEntity udiProductEntity = udiProductService.findBySptm(code); + if (udiProductEntity != null) { + BaseResponse baseResponse = ResultVOUtils.error(508, "UDI码格式错误"); + baseResponse.setData(udiProductEntity); + return baseResponse; + } + } + } + BaseResponse baseResponse = ResultVOUtils.error(501, "UDI码格式错误"); + baseResponse.setData(originCode); + return baseResponse; + } + + if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) { + if (code.endsWith("10" + udiEntity.getBatchNo())) { + code = code + "\u001D"; + } + } + + UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + if (checkUdi == null) { + return ResultVOUtils.error(500, "耗材字典不存在此产品!"); + } + boolean checkSuccess = true; + String lostMsg = ""; + //校验条码完整性 + if ("是".equals(checkUdi.getScbssfbhph()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + checkSuccess = false; + lostMsg = lostMsg + ",批次号"; + } + if ("是".equals(checkUdi.getScbssfbhscrq()) && StrUtil.isEmpty(udiEntity.getProduceDate())) { + checkSuccess = false; + lostMsg = lostMsg + ",生产日期"; + } + + if ("是".equals(checkUdi.getScbssfbhsxrq()) && StrUtil.isEmpty(udiEntity.getExpireDate())) { + checkSuccess = false; + lostMsg = lostMsg + ",失效日期"; + } + if (("是".equals(checkUdi.getScbssfbhxlh()) && StrUtil.isEmpty(udiEntity.getSerialNo())) + ) { + checkSuccess = false; + lostMsg = lostMsg + ",序列号"; + } + if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length() > 20) { + checkSuccess = false; + return ResultVOUtils.error(504, "序列号超出20位!"); + } + if (StrUtil.isNotEmpty(udiEntity.getBatchNo()) && udiEntity.getBatchNo().length() > 20) { + checkSuccess = false; + return ResultVOUtils.error(504, "批次号超出20位!"); + } + if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + checkSuccess = false; + } + if (checkSuccess) { + if (code.endsWith("\u001D")) { + code = code.substring(0, code.length() - "\u001D".length()); + } + return ResultVOUtils.success(code); + } else { + + if (newCode.startsWith("21") || (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && newCode.contains("21" + udiEntity.getSerialNo()))) { + if (StrUtil.isEmpty(lostMsg)) { + lostMsg = ","; + } + BaseResponse baseResponse = ResultVOUtils.error(503, "条码完整性错误,缺少" + lostMsg.substring(1) + "是否继续添加?"); + baseResponse.setData(code); + return baseResponse; + } + } + BaseResponse baseResponse = ResultVOUtils.error(502, "校验未完成"); + baseResponse.setData(code); + return baseResponse; + } + + + public String checkNewCode(UdiEntity originEnity, String newCode) { + UdiEntity newEntity = FilterUdiUtils.getUdi(originEnity.getUdi() + newCode); + if (newEntity == null || originEnity == null) { + return null; + } + if (StrUtil.isNotEmpty(originEnity.getBatchNo()) && StrUtil.isNotEmpty(newEntity.getBatchNo())) { + return "批次号重复添加!"; + } + if (StrUtil.isNotEmpty(originEnity.getProduceDate()) && StrUtil.isNotEmpty(newEntity.getProduceDate())) { + return "生产日期重复添加!"; + } + if (StrUtil.isNotEmpty(originEnity.getExpireDate()) && StrUtil.isNotEmpty(newEntity.getExpireDate())) { + return "失效日期重复添加!"; + } + if (StrUtil.isNotEmpty(originEnity.getSerialNo()) && StrUtil.isNotEmpty(newEntity.getSerialNo())) { + return "序列号重复添加!"; + } + return null; + } + + //前端扫码提交 + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/addOrderWeb") + public BaseResponse addOrderWeb(@RequestBody AddOrderRequest addOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + AddCodeResult addCodeResult = new AddCodeResult(); + + if (addOrderRequest.getAction() == null) { + addOrderRequest.setAction(addOrderRequest.getBillType()); + } + + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); + String code = addOrderRequest.getCode(); + if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR); + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + if (udiEntity == null) + return ResultVOUtils.error(500, "无效条码!"); + + if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) { + udiEntity.setBatchNo(addOrderRequest.getBatchNo()); + } + if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) { + udiEntity.setProduceDate(addOrderRequest.getProduceDate()); + } + if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) { + udiEntity.setExpireDate(addOrderRequest.getExpireDate()); + } + if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) { + udiEntity.setSerialNo(addOrderRequest.getSerialNo()); + } + + + if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length() > 20) { + return ResultVOUtils.error(500, "无效条码!序列号超出最大范围"); + } + + if (StrUtil.isNotEmpty(udiEntity.getBatchNo()) && udiEntity.getBatchNo().length() > 20) { + return ResultVOUtils.error(500, "无效条码!批次号超出最大范围"); + } + + + //批次号校验 + //判断此产品是否开启允许无批次号 + UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi()); + if (!udiInfoEntity.getAllowNoBatch()) { + if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + return ResultVOUtils.error(500, "序列号与批次号不能同时为空!"); + } + } + + String orderId = addOrderRequest.getOrderId(); + + //三期校验 + if (addOrderRequest.isCodeFillCheck()) { + + BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); + if (checkOriginCodeRes != null) { + if (StrUtil.isNotEmpty(orderId)) { + List ioCodeEnttities = codesService.findByOrderId(orderId); + IoCodeEnttity ioCodeEnttity = isExitLocal(code, ioCodeEnttities); + if (ioCodeEnttity == null) { + return checkOriginCodeRes; + } + } else + return checkOriginCodeRes; + } + } + + + //过期提醒: + SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip"); + if (expireParamConfigEntity.getParamValue().equals("1") && !addOrderRequest.isIgnoreExpire()) { + if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { + String expireDate = "20" + udiEntity.getExpireDate(); + long expireTime = DateUtil.parseDateExpire(expireDate); + if (expireTime - System.currentTimeMillis() < 0) { + return ResultVOUtils.error(504, "当前产品已过期,是否确定继续添加?"); + } + } + } + + //失效期提醒 + SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip"); + long recent = Long.parseLong(recentParamConfigEntity.getParamValue()); + if (recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) { + if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { + String expireDate = "20" + udiEntity.getExpireDate(); + long expireTime = DateUtil.parseDateExpire(expireDate); + long recentTieme = Math.abs(recent * 24 * 60 * 60 * 1000); + long resultTime = expireTime - System.currentTimeMillis(); + + if (resultTime > 0) { + long time = resultTime / (24 * 60 * 60 * 1000); + if (resultTime < recentTieme) { + return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + "天,是否确定继续添加?"); + } + } + } + } + + //校验预验收是否已存在 todo + if (bussinessTypeEntity.isPreIn()) { + if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { +// List invProductDetailEntities = invPreInProductDetailService.findByOriginCode(code); +// if (CollUtil.isNotEmpty(invProductDetailEntities)) { +// return ResultVOUtils.error(500, "条码已存在!"); +// } + } + } + + //校验预验收库存是否已存在 + if (addOrderRequest.isPreCheck()) { +// InvProductDetailEntity invProductDetailEntity = invPreInProductDetailService.statInvPreInDetail(code); +// if (invProductDetailEntity == null) { +// return ResultVOUtils.error(500, "预验收库存未存在此产品!"); +// } else { +// +// +// if (StrUtil.isNotEmpty(invProductDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo()) +// && !invProductDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) { +// return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); +// +// } +// +// +// if (StrUtil.isNotEmpty(orderId)) {//非首次添加 +// if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 +// WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); +// warehouseQueryRequest.setOrderId(orderId); +// warehouseQueryRequest.setCode(code); +// List codeEnttitys = codesTempService.findByOrderIdAndCode(warehouseQueryRequest); +// if (CollUtil.isNotEmpty(codeEnttitys)) { +// WarehouseEntity codeEnttity = codeEnttitys.get(0); +// if (invProductDetailEntity.getCount() < (codeEnttity.getCount() + 1)) { +// return ResultVOUtils.error(500, "超出预验收库存数量"); +// } +// } +// } else { +// if (invProductDetailEntity.getCount() < 1) { +// return ResultVOUtils.error(500, "超出预验收库存数量"); +// } +// } +// } +// } + } else //校验库存是否存在 + if (addOrderRequest.isVailInv()) { +// if (bussinessTypeEntity.isAdvanceType()) { +// int count = invPreProductDetailService.vailStockCount(code); +// if (count < 0) { +// return ResultVOUtils.error(500, "当前库存不足,不允许0库存出库"); +// } +// } else { +// int count = invProductDetailService.vailStockCount(code, addOrderRequest.getLocStorageCode(), addOrderRequest.getInvWarehouseCode(), null); +// if (count <= 0) { +// return ResultVOUtils.error(500, "当前库存不足,不允许0库存出库"); +// } else if (StrUtil.isNotBlank(addOrderRequest.getOrderId())) { +// //查询此单据已扫描的条码数量 +// WarehouseEntity warehouse = codesTempService.findByUnique(addOrderRequest.getOrderId(), addOrderRequest.getCode()); +// if (null != warehouse && warehouse.getCount() >= count) { +// return ResultVOUtils.error(500, "当前库存不足,不允许0库存出库"); +// } +// } +// } + } + + + if (addOrderRequest.getFromCorp() == null) { + BasicCorpEntity basicCorpEntity = basicUnitMaintainService.selectByName(addOrderRequest.getFromCorp()); + if (basicCorpEntity == null && bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) { + basicCorpEntity = new BasicCorpEntity(); + basicCorpEntity.setErpId(CustomUtil.getUnitId()); + addOrderRequest.setFromCorp((basicCorpEntity.getErpId())); + basicCorpEntity.setCorpType(ConstantStatus.CORP_SICK); + basicCorpEntity.setOutType(ConstantStatus.CORP_SICK_SICK); + basicCorpEntity.setName(addOrderRequest.getFromCorp()); + addOrderRequest.setFromCorp(basicCorpEntity.getName()); + basicUnitMaintainService.insertBasicUnitMaintain(basicCorpEntity); + } + } + + //先生成扫码单据 + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + if (StringUtils.isBlank(orderId) || orderEntity == null) { + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); + orderId = orderNo; + } + + List codeEnttitys = codesService.findByOrderId(orderId); + IoCodeEnttity codeEnttity = new IoCodeEnttity(); + IoCodeEnttity exitLocalEntity = null; + if (codeEnttitys.size() > 0) { + exitLocalEntity = isExitLocal(code, codeEnttitys); + if (exitLocalEntity != null) { + codeEnttity = exitLocalEntity; + codeEnttity.setCount(codeEnttity.getCount() + 1); + if (StringUtils.isBlank(codeEnttity.getSerialNo())) { + codesService.updateById(codeEnttity); + } else { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT); + } + } + } + + + if (exitLocalEntity == null) { + codeEnttity.setCode(code); + codeEnttity.setOrderId(orderId); + codeEnttity.setCorpOrderId(addOrderRequest.getCorpOrderId()); + codeEnttity.setCreateTime(new Date()); + codeEnttity.setUpdateTime(new Date()); + codeEnttity.setMainAction(bussinessTypeEntity.getMainAction()); + codeEnttity.setAction(bussinessTypeEntity.getAction()); + codeEnttity.setNameCode(udiEntity.getUdi()); + codeEnttity.setBatchNo(udiEntity.getBatchNo()); + codeEnttity.setProduceDate(udiEntity.getProduceDate()); + codeEnttity.setExpireDate(udiEntity.getExpireDate()); + codeEnttity.setSerialNo(udiEntity.getSerialNo()); + codeEnttity.setDeptCode(addOrderRequest.getDeptCode()); + codeEnttity.setInvCode(addOrderRequest.getInvCode()); + codeEnttity.setCount(1); + String unitFk = null; + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + unitFk = addOrderRequest.getFromCorp(); + } + //产品是否可以以使用单元入库 + List udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(codeEnttity.getNameCode(), unitFk); + 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) { + return ResultVOUtils.error(500, "该产品不允许以使用单元入库!"); + } + //计算实际数量 + codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(udiRelevanceResponse)); + } else if (udiRelevanceResponses.size() == 0) { + if (unitFk == null) + return ResultVOUtils.error(500, "耗材字典不存在此产品!"); + else + return ResultVOUtils.error(500, "当前供应商不存在此配送产品!"); + } + + + //校验供应商是否配送此产品 + BaseResponse corpResponse = checkCorp(codeEnttity, bussinessTypeEntity, unitFk); + if (corpResponse != null) { + return corpResponse; + } + + + IoOrderEntity isExit = orderService.findById(orderId); + if (isExit == null) { + IoOrderEntity orderSaveRequest = new IoOrderEntity(); + orderSaveRequest.setBillNo(orderId); + orderSaveRequest.setCorpOrderId(addOrderRequest.getCorpOrderId()); + orderSaveRequest.setMainAction(bussinessTypeEntity.getMainAction()); + orderSaveRequest.setAction(bussinessTypeEntity.getAction()); + orderSaveRequest.setFromCorp(addOrderRequest.getFromCorp()); + orderSaveRequest.setFromInvCode(addOrderRequest.getFromInvCode()); + orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW); + orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + AuthAdmin authAdmin = getUser(); + orderSaveRequest.setCreateUser(authAdmin.getId() + ""); + orderSaveRequest.setCreateTime(new Date()); + orderSaveRequest.setUpdateUser(authAdmin.getId() + ""); + orderSaveRequest.setUpdateTime(new Date()); + orderSaveRequest.setCustomerId(authAdmin.getCustomerId()); + orderSaveRequest.setDeptCode(addOrderRequest.getDeptCode()); + orderSaveRequest.setInvCode(addOrderRequest.getInvCode()); + orderService.insertOrder(orderSaveRequest); + } + + BaseResponse baseResponse = checkRelId(codeEnttity, unitFk); + codeEnttity = codesService.findByUnique(codeEnttity.getOrderId(), codeEnttity.getCode()); + if (baseResponse == null) { + baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); + if (baseResponse != null) + return baseResponse; + } else { + if (baseResponse.getCode() == 501) { + return baseResponse; + } else if (baseResponse.getCode() == 502) { + return baseResponse; + } + checkSupId(bussinessTypeEntity, codeEnttity, unitFk); + return baseResponse; + } + + + } + addCodeResult.setOrderId(orderId); + return ResultVOUtils.success(addCodeResult); + } + + //校验条码完整性 + public BaseResponse checkOriginCode(UdiEntity udiEntity) { + //校验条码的完整性 + String errMsg = ""; + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + if (udiRelevanceResponse == null) { + return ResultVOUtils.error(501, "耗材字典不存在此产品!"); + } + if (StrUtil.isEmpty(udiEntity.getBatchNo()) && !udiRelevanceResponse.getAllowNoBatch()) { + errMsg = errMsg + ",批次号"; + } + if (StrUtil.isEmpty(udiEntity.getProduceDate()) && !udiRelevanceResponse.getAllowNoProduct()) { + errMsg = errMsg + ",生产日期"; + } + if (StrUtil.isEmpty(udiEntity.getExpireDate()) && !udiRelevanceResponse.getAllowNoExpire()) { + errMsg = errMsg + ",失效日期"; + } + + if (StrUtil.isNotEmpty(errMsg)) { + BaseResponse baseResponse = ResultVOUtils.error(507, "产品三期缺失请补齐" + errMsg.substring(1) + ""); + baseResponse.setData(udiEntity); + return baseResponse; + } + return null; + } + + //校验供应商是否配送此产品 + public BaseResponse checkCorp(IoCodeEnttity codeEnttity, BasicBussinessTypeEntity bussinessTypeEntity, String unitFk) { + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest(); + companyProductRelevanceRequest.setUnitFk(unitFk); + UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode()); + companyProductRelevanceRequest.setNameCode(udiEntity.getUdi()); + List datas = udiRlSupService.filterUdiGp(companyProductRelevanceRequest); + if (datas.size() <= 0) { + return ResultVOUtils.error(500, "当前供应商不存在此配送产品!"); + } + } + return null; + } + + //校验产品ID唯一性 + public BaseResponse checkRelId(IoCodeEnttity codeEnttity, String unitFk) { + + List udiRelevanceEntities = udiRelevanceService.selectAllByNameCode(codeEnttity.getNameCode(), unitFk); + if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1 && codeEnttity.getRelId() == null) {//同一个DI绑定多个产品西信息 + codeEnttity.setRelId(null); + codeEnttity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI); + codesService.insert(codeEnttity); + codeEnttity = codesService.findByUnique(codeEnttity.getOrderId(), codeEnttity.getCode()); + BaseResponse baseResponse = ResultVOUtils.error(502, "DI绑定多个产品ID,请指定对应产品"); + baseResponse.setData(codeEnttity); + return baseResponse; + } else if (udiRelevanceEntities == null || udiRelevanceEntities.size() == 0) {//未找到产品信息,一般不会出现 + codeEnttity.setRelId(null); + codeEnttity.setStatus(2); + return ResultVOUtils.error(501, "耗材字典不存在此产品!"); + } else { + codeEnttity.setStatus(0); + if (codeEnttity.getRelId() == null) + codeEnttity.setRelId(udiRelevanceEntities.get(0).getId()); + codesService.insert(codeEnttity); + } + + return null; + } + + //校验供应商唯一性 + public BaseResponse checkSupId(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeEnttity codeEnttity, String unitFk) { + String originSupId = null; + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + if (unitFk != null) + originSupId = unitFk; + } + if (originSupId != null) { + codeEnttity.setSupId(originSupId); + } else { + + String supId = transInoutService.checkInvExitSup(codeEnttity); + if (supId == null) { + supId = transInoutService.checkExitSup(codeEnttity.getRelId()); + } + if (supId == null) { + codeEnttity.setSupId(null); + BaseResponse baseResponse = ResultVOUtils.error(503, "该产品未绑定供应商,请指定对应的供应商"); + baseResponse.setData(codeEnttity); + return baseResponse; + } else if ("MUTI".equals(supId)) { + codeEnttity.setSupId(null); + BaseResponse baseResponse = ResultVOUtils.error(503, "该产品绑定多个供应商,请指定对应的供应商"); + baseResponse.setData(codeEnttity); + return baseResponse; + } else { + codeEnttity.setSupId(supId); + } + } + codesService.updateById(codeEnttity); + return null; + } + + //判断本单是否存在 + public IoCodeEnttity isExitLocal(String code, List codeEnttityList) { + + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + for (int i = 0; i < codeEnttityList.size(); i++) { + IoCodeEnttity drugCodeSelectEntity = codeEnttityList.get(i); + if (codeEnttityList.get(i).getCode().equals(code)) { + return drugCodeSelectEntity; + } +// UdiEntity originUdiEntity = FilterUdiUtils.getUdi(drugCodeSelectEntity.getCode()); + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getNameCode()).equals(StrUtil.emptyIfNull(udiEntity.getUdi()))) { + continue; + } + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getBatchNo()).toUpperCase(Locale.ROOT).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo()).toUpperCase(Locale.ROOT))) { + continue; + } + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getProduceDate()).equals(StrUtil.emptyIfNull(udiEntity.getProduceDate()))) { + continue; + } + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getExpireDate()).equals(StrUtil.emptyIfNull(udiEntity.getExpireDate()))) { + continue; + } + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getSerialNo()).equals(StrUtil.emptyIfNull(udiEntity.getSerialNo()))) { + continue; + } + return drugCodeSelectEntity; + } + return null; + } + + +} diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java new file mode 100644 index 000000000..169a55369 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -0,0 +1,18 @@ +package com.glxp.api.controller.inout; + +import com.glxp.api.service.inout.IoOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +@Slf4j +@RestController +public class IoOrderController { + @Resource + IoOrderService orderService; + + + +} diff --git a/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java b/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java index c264f0851..468bb8f0b 100644 --- a/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java +++ b/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java @@ -21,6 +21,9 @@ public interface BasicBussinessTypeDao extends BaseMapper filterList(FilterBussinessTypeRequest filterBussinessTypeRequest); + List filterJoinByUser(FilterBussinessTypeRequest filterBussinessTypeRequest); + + /** * 忽略已存在数据插入单据类型 * 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 33b2a3b86..c3ab94491 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -1,6 +1,9 @@ package com.glxp.api.dao.basic; +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.dao.inout.IoCodeDao; import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.entity.inout.IoCodeEnttity; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import org.apache.ibatis.annotations.Mapper; @@ -9,14 +12,11 @@ import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper -public interface UdiRelevanceDao { +public interface UdiRelevanceDao extends BaseMapperPlus { List filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest); - UdiRelevanceEntity selectByDiThirdId(String nameCode, String thirdId, String thirdSys); - - List filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest); @@ -67,19 +67,11 @@ public interface UdiRelevanceDao { void importUdiRelevance(@Param("udiRelevanceEntities") List udiRelevanceEntities); /** - * 查询产品ID - * - * @param nameCode - * @param orderIdFk - * @return - */ - String selectProductId(@Param("nameCode") String nameCode, @Param("orderIdFk") String orderIdFk); - - /** + * /** * 查找产品UUID * * @param relId * @return */ - String selectUuidById(String relId); + String selectUuidById(@Param("relId") String relId); } diff --git a/src/main/java/com/glxp/api/dao/basic/UdiRlSupDao.java b/src/main/java/com/glxp/api/dao/basic/UdiRlSupDao.java new file mode 100644 index 000000000..388aec2af --- /dev/null +++ b/src/main/java/com/glxp/api/dao/basic/UdiRlSupDao.java @@ -0,0 +1,38 @@ +package com.glxp.api.dao.basic; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.basic.UdiRlSupEntity; +import com.glxp.api.req.basic.CompanyProductRelevanceRequest; +import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; +import com.glxp.api.res.basic.UdiRlSupResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface UdiRlSupDao extends BaseMapperPlus { + + List filterUdiGp(CompanyProductRelevanceRequest basicInstrumentMaintainRequest); + + List filterCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest); + + UdiRlSupEntity findCompanyProductRelevance(String CustomerId); + + UdiRlSupEntity findCompanyProductRelevanceByProductId(String productId); + + UdiRlSupEntity findCompanyProductRelevanceByUdiRlIdFk(@Param("udiRlIdFk") String udiRlIdFk, @Param("customerId") String customerId); + + UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity); + + List getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest); + + + boolean insertCompanyProductRelevance(UdiRlSupEntity companyCertEntity); + + boolean importCompanyProductRelevance(UdiRlSupEntity udiRlSupEntity); + + boolean deleteById(String id); + + boolean deleteByRlId(String id); +} diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java new file mode 100644 index 000000000..43cd88613 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java @@ -0,0 +1,8 @@ +package com.glxp.api.dao.inout; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inout.IoCodeEnttity; +import com.glxp.api.entity.inout.IoOrderEntity; + +public interface IoCodeDao extends BaseMapperPlus { +} diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java new file mode 100644 index 000000000..22c5b55b6 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java @@ -0,0 +1,7 @@ +package com.glxp.api.dao.inout; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inout.IoOrderEntity; + +public interface IoOrderDao extends BaseMapperPlus { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/auth/AuthAdmin.java b/src/main/java/com/glxp/api/entity/auth/AuthAdmin.java index adbb9aa28..e6b87ec63 100644 --- a/src/main/java/com/glxp/api/entity/auth/AuthAdmin.java +++ b/src/main/java/com/glxp/api/entity/auth/AuthAdmin.java @@ -28,7 +28,7 @@ public class AuthAdmin { private Date lastModifyTime; private String comments; private String employeeName; - private Integer CustomerId; + private Long CustomerId; private String locInvCode; private String locSubInvCode; diff --git a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java index a65b39b4c..30bfda66b 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -77,4 +77,23 @@ public class UdiProductEntity { private String supId; + public Boolean getAllowNoBatch() { + if (allowNoBatch == null) + return false; + return allowNoBatch; + } + + public Boolean getAllowNoExpire() { + if (allowNoExpire == null) + return false; + return allowNoExpire; + } + + public Boolean getAllowNoProduct() { + if (allowNoProduct == null) + return false; + return allowNoProduct; + } + + } diff --git a/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java new file mode 100644 index 000000000..9ab260742 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/basic/UdiRlSupEntity.java @@ -0,0 +1,27 @@ +package com.glxp.api.entity.basic; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class UdiRlSupEntity { + + private Integer id; + private String customerId; + private String productId; + private String enterpriseId; + private String registrationId; + private String auditStatus; + private String productUuid; + private String udiRlIdFk; + private String unitFk; + private BigDecimal price; + + private Date createTime; + private Date updateTime; + private String createUser; + private String updateUser; +} diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeEnttity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeEnttity.java new file mode 100644 index 000000000..11252fc7c --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeEnttity.java @@ -0,0 +1,143 @@ +package com.glxp.api.entity.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; + +@Data +@TableName(value = "io_codes") +public class IoCodeEnttity implements Serializable { + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * UDI码 + */ + @TableField(value = "code") + private String code; + + /** + * 主单据类型(入库,出库) + */ + @TableField(value = "mainAction") + private String mainAction; + + /** + * 单据类型 + */ + @TableField(value = "`action`") + private String action; + + /** + * 订单号外键 + */ + @TableField(value = "orderId") + private String orderId; + + /** + * 手持终端订单号 + */ + @TableField(value = "corpOrderId") + private String corpOrderId; + + /** + * DI标识 + */ + @TableField(value = "nameCode") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "produceDate") + private String produceDate; + + /** + * 失效日期 + */ + @TableField(value = "expireDate") + private String expireDate; + + /** + * 序列号 + */ + @TableField(value = "serialNo") + private String serialNo; + + /** + * 包装级别 + */ + @TableField(value = "packageLevel") + private String packageLevel; + + /** + * 供应商ID外键 + */ + @TableField(value = "supId") + private String supId; + + /** + * 耗材字典ID外键 + */ + @TableField(value = "relId") + private Long relId; + + /** + * 扫码数量 + */ + @TableField(value = "`count`") + private Integer count; + + /** + * 实际数量 + */ + @TableField(value = "reCount") + private Integer reCount; + + /** + * 部门编码外键 + */ + @TableField(value = "deptCode") + private String deptCode; + + /** + * 仓库编码外键 + */ + @TableField(value = "invCode") + private String invCode; + + /** + * 货位编码外键 + */ + @TableField(value = "warehouseCode") + private String warehouseCode; + + /** + * 更新日期 + */ + @TableField(value = "updateTime") + private Date updateTime; + + /** + * 创建日期 + */ + @TableField(value = "createTime") + private Date createTime; + + + private Integer status; //条码校验状态 + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java new file mode 100644 index 000000000..7c374a764 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java @@ -0,0 +1,186 @@ +package com.glxp.api.entity.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Data; + +@Data +@TableName(value = "io_order_detail_biz") +public class IoOrderDetailBizEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + /** + * 订单号外键 + */ + @TableField(value = "orderIdFk") + private String orderIdFk; + + /** + * 耗材字典ID外键 + */ + @TableField(value = "bindRlFk") + private String bindRlFk; + + /** + * DI信息UUID外键 + */ + @TableField(value = "uuidFk") + private String uuidFk; + + /** + * DI + */ + @TableField(value = "nameCode") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "productDate") + private String productDate; + + /** + * 失效日期 + */ + @TableField(value = "expireDate") + private String expireDate; + + /** + * 产品通用名称 + */ + @TableField(value = "coName") + private String coName; + + /** + * 注册证号 + */ + @TableField(value = "certCode") + private String certCode; + + /** + * 医疗器械注册备案证号 + */ + @TableField(value = "ylqxzcrbarmc") + private String ylqxzcrbarmc; + + /** + * 生产企业 + */ + @TableField(value = "manufacturer") + private String manufacturer; + + /** + * 计量单位 + */ + @TableField(value = "measname") + private String measname; + + /** + * 规格型号 + */ + @TableField(value = "spec") + private String spec; + + /** + * 价格 + */ + @TableField(value = "price") + private BigDecimal price; + + /** + * 销售清单号 + */ + @TableField(value = "secSalesListNo") + private String secSalesListNo; + + /** + * 发票第一票 + */ + @TableField(value = "firstSalesInvNo") + private String firstSalesInvNo; + + /** + * 发票第二票 + */ + @TableField(value = "secSalesInvNo") + private String secSalesInvNo; + + /** + * 发票有效期 + */ + @TableField(value = "invoiceDate") + private String invoiceDate; + + /** + * 供应商ID外键 + */ + @TableField(value = "supId") + private String supId; + + /** + * 绑定供应商状态 + */ + @TableField(value = "bindSupStatus") + private String bindSupStatus; + + /** + * 单据数量 + */ + @TableField(value = "`count`") + private Integer count; + + /** + * 扫码数量 + */ + @TableField(value = "reCount") + private Integer reCount; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 扩展字段1 + */ + @TableField(value = "remark1") + private String remark1; + + /** + * 扩展字段2 + */ + @TableField(value = "remark2") + private String remark2; + + /** + * 扩展字段3 + */ + @TableField(value = "remark3") + private String remark3; + + /** + * 扩展字段4 + */ + @TableField(value = "remark4") + private String remark4; + + /** + * 扩展字段5 + */ + @TableField(value = "remark5") + private String remark5; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java new file mode 100644 index 000000000..0121b8fb0 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java @@ -0,0 +1,186 @@ +package com.glxp.api.entity.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Data; + +@Data +@TableName(value = "io_order_detail_code") +public class IoOrderDetailCodeEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + /** + * 订单号外键 + */ + @TableField(value = "orderIdFk") + private String orderIdFk; + + /** + * 耗材字典ID外键 + */ + @TableField(value = "bindRlFk") + private String bindRlFk; + + /** + * DI信息UUID外键 + */ + @TableField(value = "uuidFk") + private String uuidFk; + + /** + * DI + */ + @TableField(value = "nameCode") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "productDate") + private String productDate; + + /** + * 失效日期 + */ + @TableField(value = "expireDate") + private String expireDate; + + /** + * 产品通用名称 + */ + @TableField(value = "coName") + private String coName; + + /** + * 注册证号 + */ + @TableField(value = "certCode") + private String certCode; + + /** + * 医疗器械注册备案证号 + */ + @TableField(value = "ylqxzcrbarmc") + private String ylqxzcrbarmc; + + /** + * 生产企业 + */ + @TableField(value = "manufacturer") + private String manufacturer; + + /** + * 计量单位 + */ + @TableField(value = "measname") + private String measname; + + /** + * 规格型号 + */ + @TableField(value = "spec") + private String spec; + + /** + * 价格 + */ + @TableField(value = "price") + private BigDecimal price; + + /** + * 销售清单号 + */ + @TableField(value = "secSalesListNo") + private String secSalesListNo; + + /** + * 发票第一票 + */ + @TableField(value = "firstSalesInvNo") + private String firstSalesInvNo; + + /** + * 发票第二票 + */ + @TableField(value = "secSalesInvNo") + private String secSalesInvNo; + + /** + * 发票有效期 + */ + @TableField(value = "invoiceDate") + private String invoiceDate; + + /** + * 供应商ID外键 + */ + @TableField(value = "supId") + private String supId; + + /** + * 绑定供应商状态 + */ + @TableField(value = "bindSupStatus") + private String bindSupStatus; + + /** + * 单据数量 + */ + @TableField(value = "`count`") + private Integer count; + + /** + * 扫码数量 + */ + @TableField(value = "reCount") + private Integer reCount; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 扩展字段1 + */ + @TableField(value = "remark1") + private String remark1; + + /** + * 扩展字段2 + */ + @TableField(value = "remark2") + private String remark2; + + /** + * 扩展字段3 + */ + @TableField(value = "remark3") + private String remark3; + + /** + * 扩展字段4 + */ + @TableField(value = "remark4") + private String remark4; + + /** + * 扩展字段5 + */ + @TableField(value = "remark5") + private String remark5; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java new file mode 100644 index 000000000..daab7d3bb --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java @@ -0,0 +1,186 @@ +package com.glxp.api.entity.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Data; + +@Data +@TableName(value = "io_order_detail_result") +public class IoOrderDetailResultEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + /** + * 订单号外键 + */ + @TableField(value = "orderIdFk") + private String orderIdFk; + + /** + * 耗材字典ID外键 + */ + @TableField(value = "bindRlFk") + private String bindRlFk; + + /** + * DI信息UUID外键 + */ + @TableField(value = "uuidFk") + private String uuidFk; + + /** + * DI + */ + @TableField(value = "nameCode") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "productDate") + private String productDate; + + /** + * 失效日期 + */ + @TableField(value = "expireDate") + private String expireDate; + + /** + * 产品通用名称 + */ + @TableField(value = "coName") + private String coName; + + /** + * 注册证号 + */ + @TableField(value = "certCode") + private String certCode; + + /** + * 医疗器械注册备案证号 + */ + @TableField(value = "ylqxzcrbarmc") + private String ylqxzcrbarmc; + + /** + * 生产企业 + */ + @TableField(value = "manufacturer") + private String manufacturer; + + /** + * 计量单位 + */ + @TableField(value = "measname") + private String measname; + + /** + * 规格型号 + */ + @TableField(value = "spec") + private String spec; + + /** + * 价格 + */ + @TableField(value = "price") + private BigDecimal price; + + /** + * 销售清单号 + */ + @TableField(value = "secSalesListNo") + private String secSalesListNo; + + /** + * 发票第一票 + */ + @TableField(value = "firstSalesInvNo") + private String firstSalesInvNo; + + /** + * 发票第二票 + */ + @TableField(value = "secSalesInvNo") + private String secSalesInvNo; + + /** + * 发票有效期 + */ + @TableField(value = "invoiceDate") + private String invoiceDate; + + /** + * 供应商ID外键 + */ + @TableField(value = "supId") + private String supId; + + /** + * 绑定供应商状态 + */ + @TableField(value = "bindSupStatus") + private String bindSupStatus; + + /** + * 单据数量 + */ + @TableField(value = "`count`") + private Integer count; + + /** + * 扫码数量 + */ + @TableField(value = "reCount") + private Integer reCount; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 扩展字段1 + */ + @TableField(value = "remark1") + private String remark1; + + /** + * 扩展字段2 + */ + @TableField(value = "remark2") + private String remark2; + + /** + * 扩展字段3 + */ + @TableField(value = "remark3") + private String remark3; + + /** + * 扩展字段4 + */ + @TableField(value = "remark4") + private String remark4; + + /** + * 扩展字段5 + */ + @TableField(value = "remark5") + private String remark5; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java new file mode 100644 index 000000000..87b606e8a --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -0,0 +1,182 @@ +package com.glxp.api.entity.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; + +@Data +@TableName(value = "io_order") +public class IoOrderEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + /** + * 单据号 + */ + @TableField(value = "billNo") + private String billNo; + + /** + * 手持终端订单号 + */ + @TableField(value = "corpOrderId") + private String corpOrderId; + + /** + * 主业务类型 + */ + @TableField(value = "mainAction") + private String mainAction; + + /** + * 业务类型 + */ + @TableField(value = "`action`") + private String action; + + /** + * 往来单位 + */ + @TableField(value = "fromCorp") + private String fromCorp; + + /** + * 往来部门 + */ + @TableField(value = "fromDeptCode") + private String fromDeptCode; + + /** + * 往来仓库 + */ + @TableField(value = "fromInvCode") + private String fromInvCode; + + /** + * 单据来源(1.UDIMS平台;2.网页新增;3.pda已校验;4.pda未校验;5.pc端扫码精灵) + */ + @TableField(value = "fromType") + private Integer fromType; + + /** + * 1:草稿;2:已提交待处理;3:处理成功待校验;3:处理异常;4:校验成功待审核;5:校验失败;6:审核通过;7:审核拒绝 + */ + @TableField(value = "`status`") + private Integer status; + + /** + * 1.草稿;2:已提交;3:已审核 + */ + @TableField(value = "dealStatus") + private Integer dealStatus; + + /** + * 创建人 + */ + @TableField(value = "`createUser`") + private String createUser; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + private Date createTime; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + private String updateUser; + + /** + * 更新时间 + */ + @TableField(value = "updateTime") + private Date updateTime; + + /** + * 验收人 + */ + @TableField(value = "reviewUser") + private String reviewUser; + + /** + * 验收时间 + */ + @TableField(value = "auditTime") + private Date auditTime; + + /** + * ID + */ + @TableField(value = "customerId") + private Long customerId; + + /** + * 部门编码 + */ + @TableField(value = "deptCode") + private String deptCode; + + /** + * 仓库编码 + */ + @TableField(value = "invCode") + private String invCode; + + /** + * 单据流转 + */ + @TableField(value = "outChangeEnable") + private Boolean outChangeEnable; + + /** + * 单据流转上级单号 + */ + @TableField(value = "originUllageSupNo") + private String originUllageSupNo; + + /** + * 单据流转下级单号 + */ + @TableField(value = "ullageSupNo") + private String ullageSupNo; + + /** + * 平衡补单单号 + */ + @TableField(value = "supplementNo") + private String supplementNo; + + /** + * 第三方系统单号(提交后返回) + */ + @TableField(value = "thirdBillNo") + private String thirdBillNo; + + /** + * 复制单据单号,多个单号之间使用,隔开 + */ + @TableField(value = "replicateNo") + private String replicateNo; + + /** + * 单据打印备注 + */ + @TableField(value = "printRemark") + private String printRemark; + + /** + * 单据备注 + */ + @TableField(value = "remark") + private String remark; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/http/SpsDirectClient.java b/src/main/java/com/glxp/api/http/SpsDirectClient.java new file mode 100644 index 000000000..20c200444 --- /dev/null +++ b/src/main/java/com/glxp/api/http/SpsDirectClient.java @@ -0,0 +1,103 @@ +package com.glxp.api.http; + +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.system.SyncDataSetEntity; +import com.glxp.api.req.inout.PostOrderRequest; +import com.glxp.api.service.system.SyncDataSetService; +import com.glxp.api.util.OkHttpCli; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Service +public class SpsDirectClient { + @Resource + private OkHttpCli okHttpCli; + @Resource + SyncDataSetService syncDataSetService; + + public String getIpUrl() { + SyncDataSetEntity syncDataSetEntity = syncDataSetService.findSet(); + return syncDataSetEntity.getSyncIp(); + } + + //单据验收 todo +// public BaseResponse reviewOrder(OrderFilterRequest orderFilterRequest) { +// String json = JSONUtil.toJsonStr(orderFilterRequest); +// String result = okHttpCli.doPostJson(getIpUrl() + "/sps/review/download/order/finsih", json); +// BaseResponse response = +// JSONObject.parseObject(result, new TypeReference>() { +// }); +// return response; +// +// } + + //获取未验收的单据 + public BaseResponse downloadOrder(String orderId, String wmsUserId, String action) { + Map paramMap = new HashMap<>(16); + paramMap.put("wmsUserId", wmsUserId); + paramMap.put("orderId", orderId); + paramMap.put("action", action); + String response = okHttpCli.doGet(getIpUrl() + "/sps/review/download/order", paramMap); + try { + BaseResponse data = JSONObject.parseObject(response, new TypeReference() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接失败!"); + } + } + + //获取未验收的单据详情 + public BaseResponse downloadOrderDetail(String orderId, String wmsUserId) { + Map paramMap = new HashMap<>(16); + paramMap.put("wmsUserId", wmsUserId); + paramMap.put("orderId", orderId); + String response = okHttpCli.doGet(getIpUrl() + "/sps/review/download/orderDetail", paramMap); + try { + BaseResponse data = JSONObject.parseObject(response, new TypeReference() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接失败!"); + } + } + + + //获取未验收的单据条码 + public BaseResponse downloadCodes(String wmsUserId, String orderId) { + Map paramMap = new HashMap<>(16); + paramMap.put("wmsUserId", wmsUserId); + paramMap.put("orderId", orderId); + String response = okHttpCli.doGet(getIpUrl() + "/sps/review/download/codes", paramMap); + try { + BaseResponse data = JSONObject.parseObject(response, new TypeReference() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接失败!"); + } + } + + + //单据上传 + public BaseResponse uploadPdaOrder(PostOrderRequest postOrderRequest) { + String json = JSONUtil.toJsonStr(postOrderRequest); + String result = okHttpCli.doPostJson(getIpUrl() + "/sps/pda/upload/orders", json); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + + } + +} diff --git a/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java b/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java new file mode 100644 index 000000000..f5c0852bc --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java @@ -0,0 +1,49 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.req.ListPageRequest; +import lombok.Data; + +@Data +public class CompanyProductRelevanceRequest extends ListPageRequest { + private String ylqxzcrbarmc; + private String cpmctymc; + private String nameCode; + private String uuid; + private String ggxh; + private String thirdId; + private String id; + + private String thirdId1; + private String thirdId2; + private String thirdId3; + private String thirdId4; + private Boolean isDisable; + + private String thirdCode; + private String thirdSys; + + private String lastUpdateTime; + private String zczbhhzbapzbh; + private Integer diType; + + + private String unionCode; + private String udiCode; + private String thrPiId; + + + private Boolean isCheck; + + private Integer filterType; //0:全部,1.对照完成,2.未对照DI,3.未对照产品编码,4.未对照其他产品编码 + private String customerId; + + + private String auditStatus; + private String companyName; + private Integer lockStatus; + private Boolean isAdavence; + private String unitFk; + + private String corpId; + private String billType; +} diff --git a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java index f7628f8d7..69bdaa7d4 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -61,7 +61,7 @@ public class FilterBussinessTypeRequest extends ListPageRequest { /** * 仓库用户关联单据类型用户ID */ - private Integer userId; + private Long userId; /** * 仓库编码,用于关联查询仓库关联单据类型 diff --git a/src/main/java/com/glxp/api/req/basic/FilterCompanyProductRelevanceRequest.java b/src/main/java/com/glxp/api/req/basic/FilterCompanyProductRelevanceRequest.java new file mode 100644 index 000000000..346a859b8 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/FilterCompanyProductRelevanceRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.req.ListPageRequest; +import lombok.Data; + +@Data +public class FilterCompanyProductRelevanceRequest extends ListPageRequest { + + private Long customerId; + private Long productId; + private String productUuid; + private String udiRlIdFk; + private String unitFk; + private String lastUpdateTime; + private String key; +} diff --git a/src/main/java/com/glxp/api/req/basic/UdiInfoExportRequest.java b/src/main/java/com/glxp/api/req/basic/UdiInfoExportRequest.java new file mode 100644 index 000000000..94db8a290 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/UdiInfoExportRequest.java @@ -0,0 +1,27 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.req.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class UdiInfoExportRequest extends ListPageRequest { + + List rlIds; + List uuids; + private Long customerId; + private String ylqxzcrbarmc; + private String cpmctymc; + private String nameCode; + private String uuid; + private String ggxh; + private String thirdId; + private String id; + private String unitFk; + private String thirdId1; + private String thirdId2; + private String thirdId3; + private String thirdId4; + +} diff --git a/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java b/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java new file mode 100644 index 000000000..5fed7d48d --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java @@ -0,0 +1,9 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +@Data +public class AddEnterCodeRequest { + private String originCode; + private String code; +} diff --git a/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java b/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java new file mode 100644 index 000000000..fc48ee2cb --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java @@ -0,0 +1,29 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +@Data +public class AddOrderRequest { + private String corpOrderId; + private String code; + private String mainAction; + private String action; + private String fromCorp; + private String fromInvCode; + private String billType; + private String deptCode; + private String invCode; + private String orderId; + private Long customerId; + private boolean outChangeEnable; + private boolean ignoreExpire; + private boolean ignoreRecentExpire; + private boolean ignoreCode; + private boolean preCheck; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private boolean vailInv; + private boolean codeFillCheck; +} diff --git a/src/main/java/com/glxp/api/req/inout/FilterIoCodeRequest.java b/src/main/java/com/glxp/api/req/inout/FilterIoCodeRequest.java new file mode 100644 index 000000000..9a7abfce8 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/FilterIoCodeRequest.java @@ -0,0 +1,8 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +@Data +public class FilterIoCodeRequest { + +} diff --git a/src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java b/src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java new file mode 100644 index 000000000..28fc65654 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java @@ -0,0 +1,60 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +@Data +public class PdaCodeEntity { + private Long id; + private String action; + private String mainAction; + private String code; + private String corpOrderId; + private String actor; + private String actDate; + private String fromCorpId; + private String fromCorp; + private String orderId; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private Integer count; //扫码数量 + private Integer reCount; //实际数量 + private String packageLevel; + private String warehouseCode; + + private String customerId; + private String nameCode; + private Integer sCount; + private String supId;//供应商ID + private String supName; + private String invStorageCode; + private String invWarehouseCode; + private String relId; + private Integer status; + private String locStorageCode; + private String fromSubInvCode; + + private String mySupId; + + private int scanCount; + + public String getSupId() { + + if (supId == null) { + return null; + } else if (supId.equals("")) + return null; + return supId; + } + + public Integer getCount() { + + if (count == null) { + return 1; + } + if (count == 0) + return 1; + return count; + } +} diff --git a/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java b/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java new file mode 100644 index 000000000..cfd419ad9 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java @@ -0,0 +1,101 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +import java.util.List; + +@Data +public class PostOrderRequest { + List postOrders; + int submitType;//0:提交,1:保存 + String oldOrderId;//保存再编辑后再保存或提交,根据旧id删除旧数据。 + private Long customerId; + private Long userId; + + private String wmsUserId; + private String wmsUserName; + + public int getSubmitType() { + return submitType; + } + + public void setSubmitType(int submitType) { + this.submitType = submitType; + } + + public String getOldOrderId() { + return oldOrderId; + } + + public void setOldOrderId(String oldOrderId) { + this.oldOrderId = oldOrderId; + } + + public static class PostOrder { + public List erpOrders; + List codes; + private String billType; + private String orderId; + private boolean outChangeEnable; + private boolean preCheck; + + public String getStockIdFk() { + return stockIdFk; + } + + public void setStockIdFk(String stockIdFk) { + this.stockIdFk = stockIdFk; + } + + private String stockIdFk; + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType; + } + + public List getErpOrders() { + return erpOrders; + } + + public void setErpOrders(List erpOrders) { + this.erpOrders = erpOrders; + } + + public List getCodes() { + return codes; + } + + public void setCodes(List codes) { + this.codes = codes; + } + + public boolean isOutChangeEnable() { + return outChangeEnable; + } + + public void setOutChangeEnable(boolean outChangeEnable) { + this.outChangeEnable = outChangeEnable; + } + + public boolean isPreCheck() { + return preCheck; + } + + public void setPreCheck(boolean preCheck) { + this.preCheck = preCheck; + } + } + +} 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 a7523f4c4..1546ec343 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -1,6 +1,5 @@ package com.glxp.api.res.basic; -import com.glxp.api.entity.basic.UdiRelevanceEntity; import lombok.Data; import java.util.Date; @@ -94,4 +93,23 @@ public class UdiRelevanceResponse { } else return bhzxxsbzsl; } + + + public Boolean getAllowNoBatch() { + if (allowNoBatch == null) + return false; + return allowNoBatch; + } + + public Boolean getAllowNoExpire() { + if (allowNoExpire == null) + return false; + return allowNoExpire; + } + + public Boolean getAllowNoProduct() { + if (allowNoProduct == null) + return false; + return allowNoProduct; + } } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java new file mode 100644 index 000000000..c9c9df4fb --- /dev/null +++ b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java @@ -0,0 +1,85 @@ +package com.glxp.api.res.basic; + +import lombok.Data; + +@Data +public class UdiRlSupResponse { + + private int id; + private Integer rlId; + private String thirdId; + private String thirdName; + private String uuid; + private String originUuid; + private String nameCode; + private String packLevel; + private String packRatio; + private Integer bhxjsl; + private Integer bhzxxsbzsl; + private Integer zxxsbzbhsydysl; + private String bhxjcpbm; + private String sjcpbm; // + private String bzcj; + private String deviceRecordKey; + private int isUseDy; + private String cpmctymc; + private String cplb; + private String flbm; + private String ggxh; + private String qxlb; + private String tyshxydm; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String ylqxzcrbarywmc; + private String sydycpbs; + private int versionNumber; + private int diType; + + private String thirdId1; + private String thirdId2; + private String thirdId3; + private String thirdId4; + private String thirdName1; + private String thirdName2; + private String thirdName3; + private String thirdName4; + + private String ybbm; + private String sptm; + private String manufactory; + private String measname; + private Boolean isDisable; + private long customerId; + + private String auditStatus; + private Boolean isLock; + private Integer lockStatus; + private String companyName; + private String mainId; + private String mainName; + private Boolean isAdavence; + + private String scbssfbhph; + private String scbssfbhxlh; + private String scbssfbhscrq; + private String scbssfbhsxrq; + private String cpms; + private String supName; + private boolean allowNoBatch; + private boolean allowNoExpire; + private boolean allowNoProduct; + private String spmc; + private Integer productType; + private String price; + + //产品代理商 + private String cpdls; + private String basicPrductRemak1; + private String basicPrductRemak2; + private String basicPrductRemak3; + private String basicPrductRemak4; + private String basicPrductRemak5; + private String basicPrductRemak6; + private String basicPrductRemak7; + private String basicPrductRemak8; +} diff --git a/src/main/java/com/glxp/api/res/inout/AddCodeResult.java b/src/main/java/com/glxp/api/res/inout/AddCodeResult.java new file mode 100644 index 000000000..1cec863cb --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/AddCodeResult.java @@ -0,0 +1,9 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +@Data +public class AddCodeResult { + private String orderId; + private String errMsg; +} diff --git a/src/main/java/com/glxp/api/service/auth/CustomerService.java b/src/main/java/com/glxp/api/service/auth/CustomerService.java index 7d58d6383..747bfe855 100644 --- a/src/main/java/com/glxp/api/service/auth/CustomerService.java +++ b/src/main/java/com/glxp/api/service/auth/CustomerService.java @@ -17,12 +17,12 @@ public class CustomerService { private AuthAdminService authAdminService; public AuthAdmin getUserBean() { - Integer userId = getUserId(); + Long userId = getUserId(); AuthAdmin authAdmin = authAdminService.findById(userId.longValue()); return authAdmin; } - public Integer getUserId() { + public Long getUserId() { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (attributes == null) { @@ -30,7 +30,7 @@ public class CustomerService { } HttpServletRequest request = attributes.getRequest(); String userId = request.getHeader("ADMIN_ID"); - return Integer.parseInt(userId); + return Long.parseLong(userId); } public String getUserIdStr() { @@ -45,9 +45,9 @@ public class CustomerService { } public String getUserName() { - Integer userId = getUserId(); + Long userId = getUserId(); AuthAdmin authAdmin = authAdminService.findById(userId.longValue()); - return authAdmin.getUserName(); + return authAdmin.getUserName(); } } diff --git a/src/main/java/com/glxp/api/service/basic/CompanyProductsRelService.java b/src/main/java/com/glxp/api/service/basic/CompanyProductsRelService.java new file mode 100644 index 000000000..4182eae3f --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/CompanyProductsRelService.java @@ -0,0 +1,59 @@ +package com.glxp.api.service.basic; + +import com.glxp.api.entity.basic.UdiRlSupEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.req.basic.UdiInfoExportRequest; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +public class CompanyProductsRelService { + @Resource + private UdiRlSupService udiRlSupService; + @Resource + UdiRelevanceService udiRelevanceService; + + @Async + public void insertCompanyProducts(UdiInfoExportRequest udiInfoExportRequest) { + //选中导出 + if (udiInfoExportRequest.getRlIds() != null && udiInfoExportRequest.getRlIds().size() > 0) { + List rlIdS = udiInfoExportRequest.getRlIds(); + for (String uuid : rlIdS) { + + UdiRlSupEntity udiRlSupEntity = new UdiRlSupEntity(); + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(Long.parseLong(uuid)); +// if (udiRelevanceEntity != null) +// companyProductRelevanceEntity.setPrice(udiRelevanceEntity.getPrice()); + udiRlSupEntity.setCreateTime(new Date()); + udiRlSupEntity.setUpdateTime(new Date()); + udiRlSupEntity.setAuditStatus("3"); + udiRlSupEntity.setUnitFk(udiInfoExportRequest.getUnitFk()); + udiRlSupEntity.setUdiRlIdFk(uuid); + udiRlSupEntity.setCustomerId(udiInfoExportRequest.getUnitFk()); + boolean b = udiRlSupService.insertCompanyProductRelevance(udiRlSupEntity); + } + + } else {//一键导出 //todo暂时去掉 +// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); +// BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest); +// filterUdiInfoRequest.setPage(null); +// List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); +// for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { +// CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity(); +// companyProductRelevanceEntity.setCreate_time(new Date()); +// companyProductRelevanceEntity.setUpdate_time(new Date()); +// companyProductRelevanceEntity.setAuditStatus("3"); +// companyProductRelevanceEntity.setUnitFk(udiInfoExportRequest.getUnitFk()); +// companyProductRelevanceEntity.setUdiRlIdFk(udiRelevanceResponse.getId()); +// companyProductRelevanceEntity.setProductUuid(udiRelevanceResponse.getUuid()); +// companyProductRelevanceEntity.setCustomerId(udiInfoExportRequest.getCustomerId()); +// boolean b = companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity); +// } + } + } + +} diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java index 6a6745364..0c4849cb0 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java @@ -19,6 +19,8 @@ public interface IBasicBussinessTypeService { */ List filterList(FilterBussinessTypeRequest filterBussinessTypeRequest); + List filterJoinByUser(FilterBussinessTypeRequest filterBussinessTypeRequest); + /** * 添加单据类型 * diff --git a/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java b/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java new file mode 100644 index 000000000..6b49b5824 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/UdiRlSupService.java @@ -0,0 +1,36 @@ +package com.glxp.api.service.basic; + + +import com.glxp.api.entity.basic.UdiRlSupEntity; +import com.glxp.api.req.basic.CompanyProductRelevanceRequest; +import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; +import com.glxp.api.res.basic.UdiRlSupResponse; + +import java.util.List; + +public interface UdiRlSupService { + + List filterUdiGp(CompanyProductRelevanceRequest basicInstrumentMaintainRequest); + + List filterCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest); + + UdiRlSupEntity findCompanyProductRelevance(String CustomerId); + + UdiRlSupEntity findCompanyProductRelevanceByProductId(String productId); + + UdiRlSupEntity findCompanyProductRelevanceByUdiRlIdFk(String udiRlIdFk, String customerId); + + UdiRlSupEntity findByUdiRlIdUnitFk(String udiRlIdFk, String unitFk); + + UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity); + + List getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest); + + int updateCompanyProductRelevance(UdiRlSupEntity companyCertEntity); + + boolean insertCompanyProductRelevance(UdiRlSupEntity companyCertEntity); + + boolean deleteById(String id); + + boolean deleteByRlId(String id); +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 639721b49..51beb0446 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -40,6 +40,17 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService return basicBussinessTypeDao.filterList(filterBussinessTypeRequest); } + @Override + public List filterJoinByUser(FilterBussinessTypeRequest filterBussinessTypeRequest) { + if (null == filterBussinessTypeRequest) { + return Collections.emptyList(); + } + if (null != filterBussinessTypeRequest.getPage() && null != filterBussinessTypeRequest.getLimit()) { + PageHelper.offsetPage((filterBussinessTypeRequest.getPage() - 1) * filterBussinessTypeRequest.getLimit(), filterBussinessTypeRequest.getLimit()); + } + return basicBussinessTypeDao.filterList(filterBussinessTypeRequest); + } + @Override public boolean insertBussinessType(BasicBussinessTypeEntity bussinessTypeEntity) { //设置创建时间和更新时间数据 diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java new file mode 100644 index 000000000..bf37e601a --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRlSupServiceImpl.java @@ -0,0 +1,110 @@ +package com.glxp.api.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.UdiRlSupDao; +import com.glxp.api.entity.basic.UdiRlSupEntity; +import com.glxp.api.req.basic.CompanyProductRelevanceRequest; +import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; +import com.glxp.api.res.basic.UdiRlSupResponse; +import com.glxp.api.service.basic.UdiRlSupService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class UdiRlSupServiceImpl implements UdiRlSupService { + + @Resource + UdiRlSupDao udiRlSupDao; + + @Override + public List filterUdiGp(CompanyProductRelevanceRequest basicInstrumentMaintainRequest) { + if (basicInstrumentMaintainRequest == null) { + return Collections.emptyList(); + } + if (basicInstrumentMaintainRequest.getPage() != null) { + int offset = (basicInstrumentMaintainRequest.getPage() - 1) * basicInstrumentMaintainRequest.getLimit(); + PageHelper.offsetPage(offset, basicInstrumentMaintainRequest.getLimit()); + } + + List data = udiRlSupDao.filterUdiGp(basicInstrumentMaintainRequest); + return data; + } + + @Override + public List filterCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest) { + if (filterCompanyProductRelevanceRequest == null) { + return Collections.emptyList(); + } + if (filterCompanyProductRelevanceRequest.getPage() != null) { + int offset = (filterCompanyProductRelevanceRequest.getPage() - 1) * filterCompanyProductRelevanceRequest.getLimit(); + PageHelper.offsetPage(offset, filterCompanyProductRelevanceRequest.getLimit()); + } + return udiRlSupDao.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); + } + + @Override + public UdiRlSupEntity findCompanyProductRelevance(String CustomerId) { + return udiRlSupDao.findCompanyProductRelevance(CustomerId); + } + + @Override + public List getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest) { + if (filterCompanyProductRelevanceRequest == null) { + return Collections.emptyList(); + } + int offset = (filterCompanyProductRelevanceRequest.getPage() - 1) * filterCompanyProductRelevanceRequest.getLimit(); + PageHelper.offsetPage(offset, filterCompanyProductRelevanceRequest.getLimit()); + List companyEntities = udiRlSupDao.getCompanyProductRelevance(filterCompanyProductRelevanceRequest); + return companyEntities; + } + + @Override + public UdiRlSupEntity findCompanyProductRelevanceByProductId(String productId) { + return udiRlSupDao.findCompanyProductRelevanceByProductId(productId); + } + + @Override + public UdiRlSupEntity findCompanyProductRelevanceByUdiRlIdFk(String udiRlIdFk, String customerId) { + return udiRlSupDao.findCompanyProductRelevanceByUdiRlIdFk(udiRlIdFk, customerId); + } + + @Override + public UdiRlSupEntity findByUdiRlIdUnitFk(String udiRlIdFk, String unitFk) { + FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); + filterCompanyProductRelevanceRequest.setUdiRlIdFk(udiRlIdFk); + filterCompanyProductRelevanceRequest.setUnitFk(unitFk); + List companyProductRelevanceEntities = udiRlSupDao.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); + if (companyProductRelevanceEntities.size() > 0) { + return companyProductRelevanceEntities.get(0); + } + return null; + } + + @Override + public UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity) { + return udiRlSupDao.findCompanyProductRelevanceByProductUuid(udiRlSupEntity); + } + + @Override + public int updateCompanyProductRelevance(UdiRlSupEntity udiRlSupEntity) { + return udiRlSupDao.updateById(udiRlSupEntity); + } + + @Override + public boolean insertCompanyProductRelevance(UdiRlSupEntity udiRlSupEntity) { + return udiRlSupDao.insertCompanyProductRelevance(udiRlSupEntity); + } + + @Override + public boolean deleteById(String id) { + return udiRlSupDao.deleteById(id); + } + + @Override + public boolean deleteByRlId(String id) { + return udiRlSupDao.deleteByRlId(id); + } +} diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoCodeService.java new file mode 100644 index 000000000..0a6ee3827 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoCodeService.java @@ -0,0 +1,20 @@ +package com.glxp.api.service.inout; + +import com.glxp.api.entity.inout.IoCodeEnttity; + +import java.util.List; + +public interface IoCodeService { + + int insert(IoCodeEnttity codeEnttity); + + boolean insertBatch(List codeEnttities); + + List findByOrderId(String billNo); + + int updateById(IoCodeEnttity codeEnttity); + + public IoCodeEnttity findByUnique(String orderId, String code); + + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java new file mode 100644 index 000000000..3eac3648e --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -0,0 +1,12 @@ +package com.glxp.api.service.inout; + +import com.glxp.api.entity.inout.IoOrderEntity; + +public interface IoOrderService { + + IoOrderEntity findById(String orderId); + + IoOrderEntity findByBillNo(String billNO); + + int insertOrder(IoOrderEntity orderEntity); +} diff --git a/src/main/java/com/glxp/api/service/inout/IoTransInoutService.java b/src/main/java/com/glxp/api/service/inout/IoTransInoutService.java new file mode 100644 index 000000000..ab5f709d9 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoTransInoutService.java @@ -0,0 +1,190 @@ +package com.glxp.api.service.inout; + +import cn.hutool.core.util.StrUtil; +import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.UdiRlSupEntity; +import com.glxp.api.entity.inout.IoCodeEnttity; +import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; +import com.glxp.api.req.inout.PdaCodeEntity; +import com.glxp.api.req.inout.PostOrderRequest; +import com.glxp.api.service.basic.UdiRlSupService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.util.DateUtil; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +public class IoTransInoutService { + + @Resource + private IBasicBussinessTypeService basicBussinessTypeService; + @Resource + private IoOrderService orderService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + IoCodeService codeService; + @Resource + UdiRlSupService udiRlSupService; + + public void creatOrderByPda(PostOrderRequest postOrderRequest) { + List postOrders = postOrderRequest.getPostOrders(); + if (postOrders != null && postOrders.size() > 0) { + for (int i = 0; i < postOrders.size(); i++) { + PostOrderRequest.PostOrder postOrder = postOrders.get(i); + List pdaCodeEntities = postOrder.getCodes(); + if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) { + + //创建单据 + PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(pdaCodeEntity.getAction()); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); + + IoOrderEntity orderSaveRequest = new IoOrderEntity(); + orderSaveRequest.setBillNo(orderNo); + if (pdaCodeEntity.getActDate() != null) { + orderSaveRequest.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); + } + orderSaveRequest.setMainAction(pdaCodeEntity.getMainAction()); + orderSaveRequest.setAction(pdaCodeEntity.getAction()); + orderSaveRequest.setCorpOrderId(pdaCodeEntity.getCorpOrderId()); + orderSaveRequest.setFromCorp(pdaCodeEntity.getFromCorpId()); + orderSaveRequest.setOutChangeEnable(postOrder.isOutChangeEnable()); + orderSaveRequest.setCustomerId(postOrderRequest.getCustomerId()); + orderSaveRequest.setFromInvCode(pdaCodeEntity.getFromSubInvCode()); + orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + ""); + if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0) + orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED); + else + orderSaveRequest.setFromType(ConstantStatus.FROM_PDAUN); + orderService.insertOrder(orderSaveRequest); + + + //写入条码 + List ioCodeEnttities = new ArrayList<>(); + for (int index = 0; index < pdaCodeEntities.size(); index++) { + pdaCodeEntities.get(index).setOrderId(orderNo); + IoCodeEnttity codeEnttity = new IoCodeEnttity(); + BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity); + ioCodeEnttities.add(codeEnttity); + } + codeService.insertBatch(ioCodeEnttities); + } + } + } + } + + + public String checkExitSup(Long relId) { + //校验条码关联供应商 + FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); + filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId + ""); + List companyProductRelevanceEntities = udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); + if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() == 1) { + UdiRlSupEntity udiRlSupEntity = companyProductRelevanceEntities.get(0); + return udiRlSupEntity.getUnitFk(); + } else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) { + String unitFk = companyProductRelevanceEntities.get(0).getUnitFk(); + boolean isMuti = false; + for (UdiRlSupEntity udiRlSupEntity : companyProductRelevanceEntities) { + if (!unitFk.equals(udiRlSupEntity.getUnitFk())) { + isMuti = true; + break; + } + } + if (isMuti) + return "MUTI"; //绑定多个供应商 + else + return unitFk; + } + return null; + } + + public String checkInvExitSup(IoCodeEnttity codeEnttity) { + + String supId = checkNorInv(codeEnttity); + if (supId == null) { + return checkPreInv(codeEnttity); + } + return supId; + } + + //查普通库存 todo + public String checkNorInv(IoCodeEnttity codeEnttity) { + +// FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest(); +// filterInvWarehouseRequest.setLevel(1); +// filterInvWarehouseRequest.setAdvanceType(false); +// List invWarehouseEntities = invWarehouseService.filterInvWarehouse(filterInvWarehouseRequest); +// List codes = new ArrayList<>(); +// if (!invWarehouseEntities.isEmpty()) { +// for (InvWarehouseEntity invWarehouseEntity : invWarehouseEntities) { +// codes.add(invWarehouseEntity.getCode()); +// } +// } +// FilterInvProductRequest filterInvProductDetailRequest = new FilterInvProductRequest(); +// filterInvProductDetailRequest.setRelIdFk(codeEnttity.getRelId()); +// filterInvProductDetailRequest.setBatchNo(codeEnttity.getBatchNo()); +// filterInvProductDetailRequest.setInvCodes(codes); +// List invProductEntities = invProductService.filterInvProduct(filterInvProductDetailRequest); +// if (invProductEntities.size() > 0) { +// String supId = invProductEntities.get(0).getSupId(); +// int count = 0; +// for (InvProductEntity invProductEntity : invProductEntities) { +// if (!supId.equals(invProductEntity.getSupId())) { +// return null; +// } +// count = count + (invProductEntity.getInCount() - invProductEntity.getOutCount()); +// } +// if (count > 0) +// return supId; +// } + + return null; + } + + //查寄售库存 todo + public String checkPreInv(IoCodeEnttity codeEnttity) { +// FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest(); +// filterInvWarehouseRequest.setLevel(1); +// filterInvWarehouseRequest.setAdvanceType(true); +// List invWarehouseEntities = invWarehouseService.filterInvWarehouse(filterInvWarehouseRequest); +// List codes = new ArrayList<>(); +// if (!invWarehouseEntities.isEmpty()) { +// for (InvWarehouseEntity invWarehouseEntity : invWarehouseEntities) { +// codes.add(invWarehouseEntity.getCode()); +// } +// } +// FilterInvProductRequest filterInvProductDetailRequest = new FilterInvProductRequest(); +// filterInvProductDetailRequest.setRelIdFk(codeEnttity.getRelId()); +// filterInvProductDetailRequest.setBatchNo(codeEnttity.getBatchNo()); +// filterInvProductDetailRequest.setInvCodes(codes); +// List invProductEntities = invPreProductService.filterInvProduct(filterInvProductDetailRequest); +// if (invProductEntities.size() > 0) { +// String supId = invProductEntities.get(0).getSupId(); +// int count = 0; +// for (InvProductEntity invProductEntity : invProductEntities) { +// if (!supId.equals(invProductEntity.getSupId())) { +// return null; +// } +// count = count + (invProductEntity.getInCount() - invProductEntity.getOutCount()); +// } +// if (count > 0) +// return supId; +// } + + return null; + } + +} diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java new file mode 100644 index 000000000..51f292078 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java @@ -0,0 +1,43 @@ +package com.glxp.api.service.inout.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inout.IoCodeDao; +import com.glxp.api.entity.inout.IoCodeEnttity; +import com.glxp.api.service.inout.IoCodeService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class IoCodeServiceImpl implements IoCodeService { + + IoCodeDao ioCodeDao; + + @Override + public int insert(IoCodeEnttity codeEnttity) { + return ioCodeDao.insert(codeEnttity); + } + + @Override + public boolean insertBatch(List codeEnttities) { + return ioCodeDao.insertBatch(codeEnttities); + } + + @Override + public List findByOrderId(String billNo) { + return ioCodeDao.selectList(new QueryWrapper().eq("orderId", billNo)); + } + + @Override + public int updateById(IoCodeEnttity codeEnttity) { + return ioCodeDao.updateById(codeEnttity); + } + + @Override + public IoCodeEnttity findByUnique(String orderId, String code) { + return ioCodeDao.selectOne(new QueryWrapper().eq("orderId", orderId).eq("code", code)); + } + + +} diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java new file mode 100644 index 000000000..a5bbbde95 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -0,0 +1,31 @@ +package com.glxp.api.service.inout.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inout.IoOrderDao; +import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.service.inout.IoOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class IoOrderServiceImpl implements IoOrderService { + + @Resource + IoOrderDao orderDao; + + @Override + public IoOrderEntity findById(String orderId) { + return orderDao.selectById(orderId); + } + + @Override + public IoOrderEntity findByBillNo(String billNO) { + return orderDao.selectOne(new QueryWrapper().eq("billNo", billNO)); + } + + @Override + public int insertOrder(IoOrderEntity orderEntity) { + return orderDao.insert(orderEntity); + } +} diff --git a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java new file mode 100644 index 000000000..d0eb94c44 --- /dev/null +++ b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java @@ -0,0 +1,37 @@ +package com.glxp.api.util.udi; + +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.basic.UdiRelevanceService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class UdiCalCountUtil { + + @Resource + UdiRelevanceService udiRelevanceService; + + + public int getActCount(Long relId) { + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(relId); + return getActCount(udiRelevanceResponse); + } + + public int getActCount(UdiRelevanceResponse udiRelevanceResponse) { + int actCount; + if (!udiRelevanceResponse.getIsUseDy() && udiRelevanceResponse.getDiType() != 2) { + if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { + actCount = udiRelevanceResponse.getZxxsbzbhsydysl(); + } else { + actCount = udiRelevanceResponse.getBhzxxsbzsl() * udiRelevanceResponse.getZxxsbzbhsydysl(); + } + } else { + actCount = udiRelevanceResponse.getBhzxxsbzsl(); + } + + return actCount; + } + + +} diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index f3577e7c3..061a99b10 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc: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: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: Glxp@6066 hikari: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 833ca2c7f..afaae9e7a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: pro + active: dev jmx: enabled: true diff --git a/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml b/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml index d77d6550f..d20b84dbe 100644 --- a/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml +++ b/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml @@ -6,7 +6,7 @@ - select inv_bustype_user.*,basic_bussiness_type.name billTypeName - FROM inv_bustype_user left join basic_bussiness_type on inv_bustype_user.scAction = basic_bussiness_type.action + select auth_user_bustype.*,basic_bussiness_type.name billTypeName + FROM auth_user_bustype left join basic_bussiness_type on auth_user_bustype.scAction = basic_bussiness_type.action AND userId = #{userId} @@ -63,7 +63,7 @@ - group by inv_bustype_user.id + group by auth_user_bustype.id @@ -71,7 +71,7 @@ replace - INTO inv_bustype_user + INTO auth_user_bustype (userId, `subInvCode`, scAction, remark) values ( #{userId}, @@ -84,18 +84,18 @@ DELETE - FROM inv_bustype_user + FROM auth_user_bustype WHERE id = #{id} DELETE - FROM inv_bustype_user + FROM auth_user_bustype WHERE subInvCode = #{subInvCode} and userId = #{userId} - UPDATE inv_bustype_user + UPDATE auth_user_bustype userId=#{userId}, subInvCode=#{subInvCode}, diff --git a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml index cfcccdd2c..74c5be16d 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml @@ -53,7 +53,8 @@ - insert ignore into basic_bussiness_type (mainAction, action, name, enable, remark, thirdSysFk, genUnit, + insert + ignore into basic_bussiness_type (mainAction, action, name, enable, remark, thirdSysFk, genUnit, innerOrder, secCheckEnable, checkEnable, checkUdims, checkPdaEd, checkPdaUn, checkPc, checkWebNew, checkSp, checkChange, secCheckUdims, secCheckPdaEd, secCheckPdaUn, secCheckPc, secCheckWebNew, @@ -63,9 +64,10 @@ entrutSpms, codeFillCheck, defaultSubInv, defaultInv, orderVisibleType, checkCopy, secCheckCopy, originAction, advanceType, changeEnable, spUse, preIn, supplementAll, createUser, createTime) - values (#{mainAction}, - #{action}, - #{name}, + values ( + #{mainAction}, + #{action}, + #{name}, #{enable}, #{remark}, #{thirdSysFk}, @@ -114,7 +116,7 @@ #{preIn}, #{supplementAll}, #{createUser}, - #{createTime} + #{createTime} ) @@ -168,7 +170,8 @@ @@ -184,7 +187,7 @@ + + 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 + 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_products.uuid = basic_udirel.uuid + inner JOIN basic_products + ON basic_products.uuid = basic_udirel.uuid AND ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%') @@ -83,29 +120,63 @@ 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 + 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_products - inner JOIN basic_udirel - ON basic_products.uuid = basic_udirel.uuid + inner JOIN basic_udirel + ON basic_products.uuid = basic_udirel.uuid AND ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%') @@ -206,16 +314,16 @@ and ( - nameCode LIKE concat('%', #{unionCode}, '%') - or ybbm LIKE concat('%', #{unionCode}, '%') - or sptm LIKE concat('%', #{unionCode}, '%')) + nameCode LIKE concat('%', #{unionCode}, '%') + or ybbm LIKE concat('%', #{unionCode}, '%') + or sptm LIKE concat('%', #{unionCode}, '%')) and (thirdId LIKE concat('%', #{thrPiId}, '%') - or thirdId1 LIKE concat('%', #{thrPiId}, '%') - or thirdId2 LIKE concat('%', #{thrPiId}, '%') - or thirdId3 LIKE concat('%', #{thrPiId}, '%') - or thirdId4 LIKE concat('%', #{thrPiId}, '%')) + or thirdId1 LIKE concat('%', #{thrPiId}, '%') + or thirdId2 LIKE concat('%', #{thrPiId}, '%') + or thirdId3 LIKE concat('%', #{thrPiId}, '%') + or thirdId4 LIKE concat('%', #{thrPiId}, '%')) AND basic_udirel.uuid = #{uuid} @@ -234,7 +342,7 @@ AND (thirdId ]]> '' or thirdId1 ]]> '' or thirdId2 ]]> '' or - thirdId3 ]]> '' or thirdId4 ]]> '') + thirdId3 ]]> '' or thirdId4 ]]> '') and basic_products.originUuid ]]> '' @@ -279,21 +387,58 @@ + + + - - - replace into basic_udirel + replace + into basic_udirel (id,uuid,mainId,thirdId,thirdId1,thirdId2,thirdId3,thirdId4,udplatCode,isUseDy,isDisable,isLock, lockStatus,isAdavence,useMuti,useNum,supName,createTime,updateTime,modifyTime,createUser,updateUser,remark ) values + ({item.id}, {item.uuid}, diff --git a/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml new file mode 100644 index 000000000..89e30ca51 --- /dev/null +++ b/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + replace + INTO company_product_relevance(customerId,productId,enterpriseId,registrationId, + createTime,updateTime,auditStatus,productUuid,udiRlIdFk,unitFk,price,createUser,updateUser) values + ( + #{customerId}, + #{productId}, + #{enterpriseId}, + #{registrationId}, + #{createTime}, + #{updateTime}, + #{auditStatus}, + #{productUuid}, + #{udiRlIdFk}, + #{unitFk}, + #{price}, + #{createUser}, + #{updateUser} + ) + + + + + replace + INTO company_product_relevance(id,customerId,productId,enterpriseId,registrationId, + createTime,updateTime,auditStatus,productUuid,udiRlIdFk,unitFk,price,createUser,updateUser) values + ( + #{id}, + #{customerId}, + #{productId}, + #{enterpriseId}, + #{registrationId}, + #{createTime}, + #{updateTime}, + #{auditStatus}, + #{productUuid}, + #{udiRlIdFk}, + #{unitFk}, + #{price}, + #{createUser}, + #{updateUser} + ) + + + + DELETE + FROM company_product_relevance + WHERE id = #{id} + + + + + DELETE + FROM company_product_relevance + WHERE udiRlIdFk = #{id} + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml new file mode 100644 index 000000000..d9899ffed --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file