药品字典修改

workplace
anthonywj 11 months ago
parent 791f8c09fd
commit 4409ea42e3

@ -19,7 +19,6 @@ import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.req.basic.FilterOrderPrintRequest; import com.glxp.api.req.basic.FilterOrderPrintRequest;
import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.basic.UdiProductService;

@ -1,9 +1,5 @@
package com.glxp.api.controller.basic; package com.glxp.api.controller.basic;
import com.glxp.api.req.basic.AddProductRequest;
import com.glxp.api.service.inout.IoOrderDetailCodeService;
import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
@ -13,26 +9,26 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.ProductInfoEntity;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.system.CompanyEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.http.NmpaUdiClient; import com.glxp.api.http.NmpaUdiClient;
import com.glxp.api.req.basic.UdiCombineRequest; import com.glxp.api.req.basic.*;
import com.glxp.api.req.basic.ProductInfoFilterRequest;
import com.glxp.api.req.basic.RemoveUdiRelRequest;
import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest; import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.*; import com.glxp.api.service.basic.ProductInfoService;
import com.glxp.api.service.system.CompanyService; import com.glxp.api.service.basic.UdiContrastService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoOrderDetailCodeService;
import com.glxp.api.service.thrsys.ThrDataService; import com.glxp.api.service.thrsys.ThrDataService;
import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.CustomUtil; import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.udi.UdiInfoUtil; import com.glxp.api.util.udi.UdiInfoUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -325,22 +321,29 @@ public class UdiContrastController {
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("/udi/udirel/addDrug") @PostMapping("/udi/udirel/addDrug")
public BaseResponse addDrug(@RequestBody AddProductRequest addProductRequest) { public BaseResponse addDrug(@RequestBody AddProductRequest addProductRequest) {
if (addProductRequest.getRelId() != null) AddProductRequest udiRelevanceEntity = udiProductService.addDrug(addProductRequest);
udiProductService.addDrug(addProductRequest); return ResultVOUtils.success(udiRelevanceEntity);
else {
udiProductService.addDrug(addProductRequest);
}
return ResultVOUtils.success();
} }
@PostMapping("/udi/udirel/updatetDrug") @PostMapping("/udi/udirel/updatetDrug")
public BaseResponse updatetDrug(@RequestBody AddProductRequest addProductRequest) { public BaseResponse updatetDrug(@RequestBody AddProductRequest addProductRequest) {
UdiProductEntity udiProductEntity = new UdiProductEntity(); AddProductRequest udiRelevanceEntity = udiProductService.addDrug(addProductRequest);
udiProductEntity.setPrice(addProductRequest.getPrice().toString()); return ResultVOUtils.success(udiRelevanceEntity);
BeanUtils.copyProperties(addProductRequest, udiProductEntity); }
boolean b = udiProductService.updateUdiInfo(udiProductEntity);
return ResultVOUtils.success(); @PostMapping("/udi/udirel/updateLevelDrug")
public BaseResponse updateLevelDrug(@RequestBody UpdateLevelDrugRequest updateLevelDrugRequest) {
udiProductService.saveOrUpadateLevelDrug(updateLevelDrugRequest);
return ResultVOUtils.success("更新成功");
}
@PostMapping("/udi/udirel/drug/delLevel")
public BaseResponse delLevel(@RequestBody AddProductRequest addProductRequest) {
boolean b = udiProductService.deleteByNameCode(addProductRequest.getNameCode());
return ResultVOUtils.success("删除成功!");
} }

@ -1,5 +1,6 @@
package com.glxp.api.controller.inout; package com.glxp.api.controller.inout;
import com.glxp.api.service.basic.UdiProductService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -7,38 +8,27 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inout.*;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.inout.IoOrderMutiRequest; import com.glxp.api.req.inout.IoOrderMutiRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.IoOrderMutiResponse; import com.glxp.api.res.inout.IoOrderMutiResponse;
import com.glxp.api.res.inout.IoOrderMutiSetResponse;
import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.*;
import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.OrderNoTypeBean;
import com.glxp.api.util.RedisUtil; import com.glxp.api.util.RedisUtil;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.lang.reflect.InvocationTargetException;
import java.util.*; import java.util.*;
@RestController @RestController

@ -52,7 +52,7 @@ public class IoSplitController extends BaseController {
} }
/** /**
* *
* *
* @return * @return
*/ */
@ -70,5 +70,24 @@ public class IoSplitController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse); return ResultVOUtils.success(pageSimpleResponse);
} }
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/material/tagCode/filter")
public BaseResponse filterByTagCode(IoSplitDetailCodeRequest splitDetailCodeRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<IoSplitCodeDetailResponse> splitCodeEntities = splitCodeDetailService.filterList(splitDetailCodeRequest);
PageInfo<IoSplitCodeDetailResponse> pageInfo = new PageInfo<>(splitCodeEntities);
PageSimpleResponse<IoSplitCodeDetailResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(splitCodeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
} }

@ -3,7 +3,6 @@ package com.glxp.api.controller.inv;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.enums.SqlLike;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
@ -25,7 +24,6 @@ import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inv.impl.InvProductDetailService; import com.glxp.api.service.inv.impl.InvProductDetailService;
import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.MsDateUtil;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import net.sf.jasperreports.engine.xml.JRPenFactory;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;

@ -2,9 +2,9 @@ package com.glxp.api.controller.thrsys;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
@ -15,23 +15,19 @@ import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity;
import com.glxp.api.http.ErpBasicClient; import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.req.thrsys.FilterThrProductsRequest; import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.req.thrsys.PostThrProductsRequest; import com.glxp.api.req.thrsys.PostThrProductsRequest;
import com.glxp.api.req.thrsys.ThrOnhandRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrProductsResponse; import com.glxp.api.res.thrsys.ThrProductsResponse;
import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrProductsService; import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.service.thrsys.ThrSystemDetailService; import com.glxp.api.service.thrsys.ThrSystemDetailService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;

@ -1,6 +1,7 @@
package com.glxp.api.entity.basic; package com.glxp.api.entity.basic;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -12,101 +13,182 @@ import java.util.Date;
* *
*/ */
@Data @Data
@TableName("basic_products")
public class UdiProductEntity { public class UdiProductEntity {
private Long id; private Long id;
@TableField(value = "uuid")
private String uuid; private String uuid;
@TableField(value = "originUuid")
private String originUuid; private String originUuid;
@TableField(value = "nameCode")
private String nameCode; private String nameCode;
@TableField(value = "deviceRecordKey")
private String deviceRecordKey; private String deviceRecordKey;
@TableField(value = "packRatio")
private String packRatio; private String packRatio;
@TableField(value = "packLevel")
private String packLevel; private String packLevel;
@TableField(value = "packUnit")
private String packUnit; private String packUnit;
@TableField(value = "bhxjsl")
private Integer bhxjsl; private Integer bhxjsl;
@TableField(value = "bhzxxsbzsl")
private Integer bhzxxsbzsl; private Integer bhzxxsbzsl;
@TableField(value = "zxxsbzbhsydysl")
private Integer zxxsbzbhsydysl; private Integer zxxsbzbhsydysl;
@TableField(value = "bhxjcpbm")
private String bhxjcpbm; private String bhxjcpbm;
@TableField(value = "bzcj")
private String bzcj; private String bzcj;
@TableField(value = "cpmctymc")
private String cpmctymc; private String cpmctymc;
@TableField(value = "cplb")
private String cplb; private String cplb;
@TableField(value = "flbm")
private String flbm; private String flbm;
@TableField(value = "ggxh")
private String ggxh; private String ggxh;
@TableField(value = "qxlb")
private String qxlb; private String qxlb;
@TableField(value = "tyshxydm")
private String tyshxydm; private String tyshxydm;
@TableField(value = "ylqxzcrbarmc")
private String ylqxzcrbarmc; private String ylqxzcrbarmc;
@TableField(value = "zczbhhzbapzbh")
private String zczbhhzbapzbh; private String zczbhhzbapzbh;
@TableField(value = "ylqxzcrbarywmc")
private String ylqxzcrbarywmc; private String ylqxzcrbarywmc;
@TableField(value = "sydycpbs")
private String sydycpbs; private String sydycpbs;
@TableField(value = "sjcpbm")
private String sjcpbm; private String sjcpbm;
@TableField(value = "versionNumber")
private Integer versionNumber; private Integer versionNumber;
@TableField(value = "diType")
private Integer diType; private Integer diType;
@TableField(value = "ybbm")
private String ybbm; private String ybbm;
@TableField(value = "sptm")
private String sptm; private String sptm;
@TableField(value = "manufactory")
private String manufactory; private String manufactory;
@TableField(value = "measname")
private String measname; private String measname;
@TableField(value = "productType")
private Integer productType; private Integer productType;
@TableField(value = "scbssfbhph")
private String scbssfbhph; private String scbssfbhph;
@TableField(value = "scbssfbhxlh")
private String scbssfbhxlh; private String scbssfbhxlh;
@TableField(value = "scbssfbhscrq")
private String scbssfbhscrq; private String scbssfbhscrq;
@TableField(value = "scbssfbhsxrq")
private String scbssfbhsxrq; private String scbssfbhsxrq;
@TableField(value = "cpms")
private String cpms; private String cpms;
@TableField(value = "allowNoBatch")
private Boolean allowNoBatch; private Boolean allowNoBatch;
@TableField(value = "allowNoExpire")
private Boolean allowNoExpire; private Boolean allowNoExpire;
@TableField(value = "allowNoProduct")
private Boolean allowNoProduct; private Boolean allowNoProduct;
@TableField(value = "allowNoSerial")
private Boolean allowNoSerial; private Boolean allowNoSerial;
@TableField(value = "spmc")
private String spmc; private String spmc;
@TableField(value = "cplx")
private String cplx; private String cplx;
@TableField(value = "hchzsb")
private String hchzsb; private String hchzsb;
@TableField(value = "cpdls")
private String cpdls; private String cpdls;
@TableField(value = "basicPrductRemak1")
private String basicPrductRemak1; private String basicPrductRemak1;
@TableField(value = "basicPrductRemak2")
private String basicPrductRemak2; private String basicPrductRemak2;
@TableField(value = "basicPrductRemak3")
private String basicPrductRemak3; private String basicPrductRemak3;
@TableField(value = "basicPrductRemak4")
private String basicPrductRemak4; private String basicPrductRemak4;
@TableField(value = "basicPrductRemak5")
private String basicPrductRemak5; private String basicPrductRemak5;
@TableField(value = "basicPrductRemak6")
private String basicPrductRemak6; private String basicPrductRemak6;
@TableField(value = "basicPrductRemak7")
private String basicPrductRemak7; private String basicPrductRemak7;
@TableField(value = "basicPrductRemak8")
private String basicPrductRemak8; private String basicPrductRemak8;
@TableField(value = "price")
private String price; private String price;
@TableField(exist = false)
//本地生成信息 //本地生成信息
private String batchNo; private String batchNo;
@TableField(exist = false)
private String produceDate; private String produceDate;
@TableField(exist = false)
private String expireDate; private String expireDate;
@TableField(exist = false)
private String serialNo; private String serialNo;
@TableField(exist = false)
private String udi; private String udi;
@TableField(exist = false)
private String code; private String code;
@TableField(exist = false)
private Integer count; private Integer count;
@TableField(exist = false)
private String warehouseCode; private String warehouseCode;
@TableField(exist = false)
private String deptCode; private String deptCode;
@TableField(exist = false)
private String udplatCode; private String udplatCode;
@TableField(exist = false)
private String relId;//关联ID主键 private String relId;//关联ID主键
@TableField(exist = false)
private Integer status; private Integer status;
@TableField(exist = false)
private String supId; private String supId;
@TableField(exist = false)
private Boolean useMuti; //是否多次使用 private Boolean useMuti; //是否多次使用
@TableField(exist = false)
private Long relSupId; private Long relSupId;
private Integer zdcfsycs; @TableField(value = "pinyinInitial")
private String pinyinInitial; private String pinyinInitial;
@TableField(value = "zdcfsycs")
private Integer zdcfsycs;
@TableField(value = "sfwblztlcp")
private String sfwblztlcp; private String sfwblztlcp;
@TableField(value = "cgzmraqxgxx")
private String cgzmraqxgxx; private String cgzmraqxgxx;
@TableField(value = "sfbjwycxsy")
private String sfbjwycxsy; private String sfbjwycxsy;
@TableField(value = "sfwwjbz")
private String sfwwjbz; private String sfwwjbz;
@TableField(value = "syqsfxyjxmj")
private String syqsfxyjxmj; private String syqsfxyjxmj;
@TableField(value = "mjfs")
private String mjfs; private String mjfs;
@TableField(value = "categoryName")
private String categoryName; private String categoryName;
@TableField(value = "updateTime")
private Date updateTime; private Date updateTime;
@TableField(value = "useNum")
private Integer useNum; private Integer useNum;
@TableField(value = "updateUser")
private String updateUser; private String updateUser;
@TableField(value = "createTime")
private Date createTime; private Date createTime;
@TableField(value = "createUser")
private String createUser; private String createUser;
@TableField(value = "destinyType")
private Integer destinyType; private Integer destinyType;
/** /**
* *
*/ */
@TableField(value = "bzgg")
private String bzgg; private String bzgg;
/** /**
@ -136,15 +218,14 @@ public class UdiProductEntity {
@TableField(value = "matrial") @TableField(value = "matrial")
@ApiModelProperty(value = "耗材材质") @ApiModelProperty(value = "耗材材质")
private String matrial; private String matrial;
@TableField(exist = false)
private Integer purType; private Integer purType;
@TableField(exist = false)
private Integer hcType; private Integer hcType;
@TableField(value = "requireScanCode")
private Integer requireScanCode; private Integer requireScanCode;
/** /**
* 1: 2: * 1: 2:
*/ */
@ -210,7 +291,7 @@ public class UdiProductEntity {
private Integer physicType; private Integer physicType;
/** /**
* *
*/ */
@TableField(value = "prepnSpec") @TableField(value = "prepnSpec")
private String prepnSpec; private String prepnSpec;
@ -222,14 +303,13 @@ public class UdiProductEntity {
private Integer majorType; private Integer majorType;
/** /**
* 1:;2:;3: * 1:;2:;3:
*/ */
@TableField(value = "medicareType") @TableField(value = "medicareType")
private Integer medicareType; private Integer medicareType;
@TableField(value = "majorStatus")
private Integer majorStatus; private Integer majorStatus;
} }

@ -250,4 +250,7 @@ public class UdiRelevanceEntity {
@TableField(value = "payFeeCode") @TableField(value = "payFeeCode")
private String payFeeCode; private String payFeeCode;
@TableField(value = "productsType")
private Integer productsType;
} }

@ -1,15 +1,13 @@
package com.glxp.api.http; package com.glxp.api.http;
import com.glxp.api.service.basic.UdiProductService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.ProductInfoEntity;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.req.basic.ProductInfoFilterRequest; import com.glxp.api.req.basic.ProductInfoFilterRequest;
import com.glxp.api.service.basic.ProductInfoService; import com.glxp.api.service.basic.ProductInfoService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.util.UuidUtils; import com.glxp.api.util.UuidUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;

@ -159,10 +159,6 @@ public class AddProductRequest {
//商品名称 //商品名称
private String spmc; private String spmc;
/**
*
*/
private String packUnit;
/** /**
* 1: 2: * 1: 2:
@ -259,10 +255,13 @@ public class AddProductRequest {
private String uuid; private String uuid;
private String nameCode; private String nameCode;
private String cpmctymc; private String cpmctymc;
private List<DrugLevelList> drugLevelLists; private List<UpdateLevelDrugRequest> drugLevelLists;
/** /**
* *
*/ */
private Long relId; private Long relId;
private Long id;
} }

@ -116,7 +116,7 @@ public class FilterUdiRelRequest extends ListPageRequest {
//药品参数 //药品参数
private String cpms; private String cpms;
private Integer productsType = 1;//默认是耗材 private Integer productsType;//默认是耗材
} }

@ -0,0 +1,35 @@
package com.glxp.api.req.basic;
import lombok.Data;
@Data
public class UpdateLevelDrugRequest {
private Long id;
/**
*
*/
private String nameCode;
/**
*
*/
private Integer packLevel;
/**
*
*/
private String packUnit;
/**
*
*/
private String sjcpbm;
/**
*
*/
private String bhxjcpbm;
/**
*
*/
private Integer bhxjsl;
private Long relId;
private String uuid;
}

@ -71,4 +71,17 @@ public class IoSplitCodeDetailResponse {
private String expireDate; private String expireDate;
private String serialNo; private String serialNo;
private String orderId; private String orderId;
private String thrId;
private String prescribeCode;
private String relId;
private String itemName;
private String measureCount;
private String measureUnit;
private String category;
private String frequency;
private String price;
private String amount;
private String ggxh;
} }

@ -1,77 +1,422 @@
package com.glxp.api.service.basic; package com.glxp.api.service.basic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.req.basic.AddProductRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.req.basic.UdiInfoRequest;
import com.glxp.api.req.basic.UpdateLevelDrugRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.apache.ibatis.annotations.Param; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.util.*;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/** @Service
* - @Transactional(rollbackFor = Exception.class)
*/ public class UdiProductService {
public interface UdiProductService { @Resource
private CustomerService customerService;
@Resource
UdiProductDao udiProductDao;
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
private com.glxp.api.service.system.ClassifyCodeService classifyCodeService;
List<UdiProductEntity> filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest); private static final Logger logger = LoggerFactory.getLogger(UdiProductService.class);
UdiProductEntity findBySptm(String sptm); public List<UdiProductEntity> filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
List<UdiRelevanceResponse> filterUdiInfo2(FilterUdiRelRequest filterUdiRelRequest); List<UdiProductEntity> data = udiProductDao.filterUdiInfo(filterUdiRelRequest);
return data;
}
UdiRelevanceResponse filterUdiInfoById(String id);
List<UdiProductEntity> filterAllUdiInfo(FilterUdiRelRequest filterUdiRelRequest); public UdiProductEntity findBySptm(String sptm) {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setSptm(sptm);
List<UdiProductEntity> data = udiProductDao.filterUdiInfo(filterUdiRelRequest);
if (CollUtil.isNotEmpty(data)) {
return data.get(0);
}
return null;
}
UdiProductEntity findByNameCode(String nameCode); public List<UdiRelevanceResponse> filterUdiInfo2(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
UdiProductEntity findById(@Param("id") String id); List<UdiRelevanceResponse> data = udiProductDao.filterUdiInfo2(filterUdiRelRequest);
return data;
}
UdiProductEntity findByUuid(String uuid); public UdiRelevanceResponse filterUdiInfoById(String id) {
return udiProductDao.filterUdiInfoById(id);
}
List<UdiProductEntity> findByOriginUuid(String originUuid); public List<UdiProductEntity> filterAllUdiInfo(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
List<UdiProductEntity> data = udiProductDao.filterUdiInfo(filterUdiRelRequest);
return data;
}
UdiProductEntity findOneByOriginUuid(String originUuid); public UdiProductEntity findByNameCode(String nameCode) {
String prefix = FilterUdiUtils.getDiStr(nameCode);
return udiProductDao.findByNameCode(prefix);
}
List<UdiProductEntity> findByUuids(String uuid); public UdiProductEntity findById(String id) {
return udiProductDao.findById(id);
}
boolean insertUdiInfo(UdiProductEntity udiProductEntity); public UdiProductEntity findByUuid(String uuid) {
return udiProductDao.findByUuid(uuid);
}
boolean insertUdiInfos(List<UdiProductEntity> udiInfoEntities); public List<UdiProductEntity> findByOriginUuid(String originUuid) {
return udiProductDao.findByOriginUuid(originUuid);
}
boolean updateUdiInfo(UdiProductEntity udiProductEntity);
boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity); public UdiProductEntity findOneByOriginUuid(String originUuid) {
List<UdiProductEntity> udiProductEntities = findByOriginUuid(originUuid);
if (CollUtil.isNotEmpty(udiProductEntities))
return udiProductEntities.get(0);
return null;
}
boolean updateUdiInfoById(UdiProductEntity udiProductEntity); public List<UdiProductEntity> findByUuids(String uuid) {
return udiProductDao.findByUuids(uuid);
}
boolean deleteById(String id); public boolean insertUdiInfo(UdiProductEntity udiProductEntity) {
if (udiProductEntity.getId() == null) {
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
}
if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc()) && StrUtil.isBlank(udiProductEntity.getPinyinInitial())) {
try {
String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc());
udiProductEntity.setPinyinInitial(pinyin);
} catch (Exception e) {
logger.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}
boolean deleteByUuid(String uuid); }
return udiProductDao.insertUdiInfo(udiProductEntity);
}
public boolean insertUdiInfos(List<UdiProductEntity> udiInfoEntities) {
return udiProductDao.insertUdiInfos(udiInfoEntities);
}
public boolean updateUdiInfo(UdiProductEntity udiProductEntity) {
if (StrUtil.isEmpty(udiProductEntity.getNameCode()))
return false;
return udiProductDao.updateUdiInfo(udiProductEntity);
}
public boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity) {
if (StrUtil.isEmpty(udiProductEntity.getUuid()))
return false;
return udiProductDao.updateUdiInfoByUuid(udiProductEntity);
}
public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) {
return udiProductDao.updateUdiInfoById(udiProductEntity);
}
public boolean deleteById(String id) {
return udiProductDao.deleteById(id);
}
public boolean deleteByUuid(String uuid) {
return udiProductDao.deleteByUuid(uuid);
}
public boolean deleteByNameCode(String nameCode) {
return udiProductDao.delete(new QueryWrapper<UdiProductEntity>().eq("nameCode", nameCode)) > 0;
}
public List<String> getGgxhList(String relId) {
return udiProductDao.selectGgxhList(relId);
}
public boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest) {
if (StrUtil.isEmpty(udiInfoRequest.getUuid()))
return false;
return udiProductDao.updateUdiInfoNotAll(udiInfoRequest);
}
public UdiProductEntity getAllowNoBatch(String nameCode) {
String di = FilterUdiUtils.getDiStr(nameCode);
return udiProductDao.selectAllowNoBatch(di);
}
public UdiProductEntity selectUdiByName(String nameCode) {
return udiProductDao.selectUdiByName(nameCode);
}
public UdiProductEntity selectMinUdiByUuid(String uuid, Integer diType) {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setUuid(uuid);
filterUdiRelRequest.setDiType(diType);
List<UdiProductEntity> udiProductEntities = udiProductDao.filterUdiInfo(filterUdiRelRequest);
if (CollUtil.isNotEmpty(udiProductEntities))
return udiProductEntities.get(0);
return null;
}
public void addProduct(AddProductRequest addProductRequest) {
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(addProductRequest, udiProductEntity);
long relId = gennerOrderUtils.getRelId();
udiProductEntity.setId(relId);
String code = addProductRequest.getCode();
if (StrUtil.isEmpty(code)) {
udiProductEntity.setNameCode(relId + "");
} else {
udiProductEntity.setNameCode(code);
}
udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
udiProductEntity.setCpmctymc(addProductRequest.getName());
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN);
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
udiRelevanceEntity.setIsDisable(false);
udiRelevanceEntity.setIsUseDy(false);
udiRelevanceEntity.setUuid(udiProductEntity.getUuid());
udiRelevanceEntity.setNeedCert(false);
udiRelevanceEntity.setPurType(1);
udiRelevanceEntity.setAttributeType(addProductRequest.getAttributeType());
udiRelevanceEntity.setHcType(addProductRequest.getHcType());
// TODO: 2024/2/27 初始化其他字段
setUpdateInfo(udiProductEntity, udiRelevanceEntity);
//处理是否需要扫码字段
classifyCodeService.updateRequireScanCode(udiProductEntity);
udiProductDao.insertUdiInfo(udiProductEntity);
udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
}
/** /**
* * /
* *
* @param relId * @param addProductRequest
* @return * @return
*/ */
List<String> getGgxhList(String relId); public AddProductRequest addDrug(AddProductRequest addProductRequest) {
UdiRelevanceEntity udiRelevanceEntity;
//编辑保存
if (addProductRequest.getRelId() != null) {
udiRelevanceEntity = udiRelevanceDao.selectById(addProductRequest.getRelId());
List<UdiProductEntity> udiProductEntities = udiProductDao.findByUuids(udiRelevanceEntity.getUuid());
for (UdiProductEntity udiProductEntity : udiProductEntities) {
addProductRequest.setNameCode(udiProductEntity.getNameCode());
BeanUtils.copyProperties(addProductRequest, udiProductEntity);
udiProductEntity.setCpmctymc(addProductRequest.getCpmctymc());
udiProductEntity.setProductsType(2);
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setPrice(addProductRequest.getPrice() == null ? "0" : addProductRequest.getPrice().toString());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
if (IntUtil.value(udiProductEntity.getPackLevel()) == 1) {
udiProductEntity.setDiType(1);
}
udiProductDao.updateById(udiProductEntity);
}
} else {
udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
udiRelevanceEntity.setIsDisable(false);
udiRelevanceEntity.setIsUseDy(false);
udiRelevanceEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
udiRelevanceEntity.setNeedCert(false);
udiRelevanceEntity.setPurType(1);
udiRelevanceEntity.setProductsType(2);
udiRelevanceEntity.setAttributeType(addProductRequest.getAttributeType());
udiRelevanceEntity.setHcType(addProductRequest.getHcType());
if (CollUtil.isNotEmpty(addProductRequest.getDrugLevelLists())) {
for (UpdateLevelDrugRequest updateLevelDrugRequest : addProductRequest.getDrugLevelLists()) {
UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
if (udiProductEntity1 != null) {
throw new JsonException(500, "层级编码已存在!");
}
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(updateLevelDrugRequest, udiProductEntity);
udiProductEntity.setCpmctymc(addProductRequest.getCpmctymc());
udiProductEntity.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity.setProductsType(2);
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setPrice(addProductRequest.getPrice() == null ? "0" : addProductRequest.getPrice().toString());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
udiProductEntity.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity.setUuid(udiProductEntity.getUuid());
if (IntUtil.value(udiProductEntity.getPackLevel()) == 1 || addProductRequest.getDrugLevelLists().size() == 1) {
udiProductEntity.setDiType(1);
if (IntUtil.value(udiProductEntity.getPackLevel()) == 1) {
calculateDistCount(udiProductEntity, udiRelevanceEntity);
calculateUseCount(udiProductEntity, udiRelevanceEntity);
}
}
setUpdateInfo(udiProductEntity, udiRelevanceEntity);
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductDao.insert(udiProductEntity);
}
}
udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
}
return addProductRequest;
}
/**
*
*/
public void saveOrUpadateLevelDrug(UpdateLevelDrugRequest updateLevelDrugRequest) {
//编辑保存
if (updateLevelDrugRequest.getRelId() != null) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(updateLevelDrugRequest.getRelId());
boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest); UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
if (udiProductEntity1 != null) {
//更新
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getBhxjsl());
udiProductDao.updateById(udiProductEntity1);
} else {
//新增
udiProductEntity1 = udiProductDao.findByUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getBhxjsl());
udiProductEntity1.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setId(IdUtil.getSnowflakeNextId());
udiProductDao.insert(udiProductEntity1);
}
} else {
//必须先提交后才能保存
UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
if (udiProductEntity1 != null) {
throw new JsonException(500, "层级编码已存在!");
}
}
}
/** /**
* DI *
*
* @param nameCode
* @return
*/ */
UdiProductEntity getAllowNoBatch(String nameCode); public void calculateDistCount(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) {
List<UdiProductEntity> udiProductEntities = udiProductDao.findByOriginUuid(udiProductEntity.getUuid());
CountWrapper xjCountWrapper = new CountWrapper();
findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper);
udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode());
udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit());
udiRelevanceEntity.setDistributeLevelCount(xjCountWrapper.getCount());
}
/**
* 使
*/
public void calculateUseCount(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) {
List<UdiProductEntity> udiProductEntities = udiProductDao.findByOriginUuid(udiProductEntity.getUuid());
CountWrapper xjCountWrapper = new CountWrapper();
findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper);
udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode());
udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit());
udiRelevanceEntity.setUseLeverCount(xjCountWrapper.getCount());
}
public static UdiProductEntity findUltimateEntity(UdiProductEntity udiProductEntity, List<UdiProductEntity> udiProductEntities, CountWrapper xjCountWrapper) {
if (StrUtil.isEmpty(udiProductEntity.getBhxjcpbm())) {
xjCountWrapper.addCount(udiProductEntity.getBhxjsl());
return udiProductEntity;
}
Optional<UdiProductEntity> nextEntityOptional = udiProductEntities.stream()
.filter(item -> item.getNameCode().equals(udiProductEntity.getBhxjcpbm()))
.findFirst();
nextEntityOptional.ifPresent(entity -> xjCountWrapper.addCount(udiProductEntity.getBhxjsl()));
return nextEntityOptional
.map(entity -> findUltimateEntity(entity, udiProductEntities, xjCountWrapper))
.orElse(null);
}
private void setUpdateInfo(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) {
Date now = new Date();
String userId = String.valueOf(customerService.getUserBean().getId());
udiProductEntity.setUpdateTime(now);
udiProductEntity.setUpdateUser(userId);
udiRelevanceEntity.setModifyTime(now);
udiRelevanceEntity.setUpdateTime(now);
udiRelevanceEntity.setUpdateUser(userId);
}
public static class CountWrapper {
private int count;
UdiProductEntity selectUdiByName(String nameCode); public CountWrapper() {
this.count = 1;
}
UdiProductEntity selectMinUdiByUuid(String uuid, Integer diType); public int getCount() {
return count;
}
void addProduct(AddProductRequest addProductRequest); public void addCount(int value) {
void addDrug(AddProductRequest addProductRequest); if (value == 0)
value = 1;
this.count = this.count * value;
}
}
} }

@ -1,5 +1,6 @@
package com.glxp.api.service.basic.impl; package com.glxp.api.service.basic.impl;
import com.glxp.api.service.basic.UdiProductService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
@ -21,7 +22,6 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.BasicProductsImportDetailService; import com.glxp.api.service.basic.BasicProductsImportDetailService;
import com.glxp.api.service.basic.BasicProductsImportLogService; import com.glxp.api.service.basic.BasicProductsImportLogService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrDataService; import com.glxp.api.service.thrsys.ThrDataService;
@ -30,7 +30,6 @@ import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.MsDateUtil;
import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.HttpClient; import com.glxp.api.util.HttpClient;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;

@ -1,350 +0,0 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.idc.service.impl.IdcServiceImpl;
import com.glxp.api.req.basic.AddProductRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.HardWareUtils;
import com.glxp.api.util.PinyinUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class UdiProductServiceImpl implements UdiProductService {
@Resource
private CustomerService customerService;
@Resource
UdiProductDao udiProductDao;
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
private com.glxp.api.service.system.ClassifyCodeService classifyCodeService;
private static final Logger logger = LoggerFactory.getLogger(UdiProductServiceImpl.class);
@Override
public List<UdiProductEntity> filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
List<UdiProductEntity> data = udiProductDao.filterUdiInfo(filterUdiRelRequest);
return data;
}
@Override
public UdiProductEntity findBySptm(String sptm) {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setSptm(sptm);
List<UdiProductEntity> data = udiProductDao.filterUdiInfo(filterUdiRelRequest);
if (CollUtil.isNotEmpty(data)) {
return data.get(0);
}
return null;
}
@Override
public List<UdiRelevanceResponse> filterUdiInfo2(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
List<UdiRelevanceResponse> data = udiProductDao.filterUdiInfo2(filterUdiRelRequest);
return data;
}
@Override
public UdiRelevanceResponse filterUdiInfoById(String id) {
return udiProductDao.filterUdiInfoById(id);
}
@Override
public List<UdiProductEntity> filterAllUdiInfo(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
List<UdiProductEntity> data = udiProductDao.filterUdiInfo(filterUdiRelRequest);
return data;
}
@Override
public UdiProductEntity findByNameCode(String nameCode) {
String prefix = FilterUdiUtils.getDiStr(nameCode);
return udiProductDao.findByNameCode(prefix);
}
@Override
public UdiProductEntity findById(String id) {
return udiProductDao.findById(id);
}
@Override
public UdiProductEntity findByUuid(String uuid) {
return udiProductDao.findByUuid(uuid);
}
@Override
public List<UdiProductEntity> findByOriginUuid(String originUuid) {
return udiProductDao.findByOriginUuid(originUuid);
}
@Override
public UdiProductEntity findOneByOriginUuid(String originUuid) {
List<UdiProductEntity> udiProductEntities = findByOriginUuid(originUuid);
if (CollUtil.isNotEmpty(udiProductEntities))
return udiProductEntities.get(0);
return null;
}
@Override
public List<UdiProductEntity> findByUuids(String uuid) {
return udiProductDao.findByUuids(uuid);
}
@Override
public boolean insertUdiInfo(UdiProductEntity udiProductEntity) {
if (udiProductEntity.getId() == null) {
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
}
if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc()) && StrUtil.isBlank(udiProductEntity.getPinyinInitial())) {
try {
String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc());
udiProductEntity.setPinyinInitial(pinyin);
} catch (Exception e) {
logger.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}
}
return udiProductDao.insertUdiInfo(udiProductEntity);
}
@Override
public boolean insertUdiInfos(List<UdiProductEntity> udiInfoEntities) {
return udiProductDao.insertUdiInfos(udiInfoEntities);
}
@Override
public boolean updateUdiInfo(UdiProductEntity udiProductEntity) {
if (StrUtil.isEmpty(udiProductEntity.getNameCode()))
return false;
return udiProductDao.updateUdiInfo(udiProductEntity);
}
@Override
public boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity) {
if (StrUtil.isEmpty(udiProductEntity.getUuid()))
return false;
return udiProductDao.updateUdiInfoByUuid(udiProductEntity);
}
@Override
public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) {
return udiProductDao.updateUdiInfoById(udiProductEntity);
}
@Override
public boolean deleteById(String id) {
return udiProductDao.deleteById(id);
}
@Override
public boolean deleteByUuid(String uuid) {
return udiProductDao.deleteByUuid(uuid);
}
@Override
public List<String> getGgxhList(String relId) {
return udiProductDao.selectGgxhList(relId);
}
@Override
public boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest) {
if (StrUtil.isEmpty(udiInfoRequest.getUuid()))
return false;
return udiProductDao.updateUdiInfoNotAll(udiInfoRequest);
}
@Override
public UdiProductEntity getAllowNoBatch(String nameCode) {
String di = FilterUdiUtils.getDiStr(nameCode);
return udiProductDao.selectAllowNoBatch(di);
}
@Override
public UdiProductEntity selectUdiByName(String nameCode) {
return udiProductDao.selectUdiByName(nameCode);
}
@Override
public UdiProductEntity selectMinUdiByUuid(String uuid, Integer diType) {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setUuid(uuid);
filterUdiRelRequest.setDiType(diType);
List<UdiProductEntity> udiProductEntities = udiProductDao.filterUdiInfo(filterUdiRelRequest);
if (CollUtil.isNotEmpty(udiProductEntities))
return udiProductEntities.get(0);
return null;
}
@Override
public void addProduct(AddProductRequest addProductRequest) {
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(addProductRequest, udiProductEntity);
long relId = gennerOrderUtils.getRelId();
udiProductEntity.setId(relId);
String code = addProductRequest.getCode();
if (StrUtil.isEmpty(code)) {
udiProductEntity.setNameCode(relId + "");
} else {
udiProductEntity.setNameCode(code);
}
udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
udiProductEntity.setCpmctymc(addProductRequest.getName());
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN);
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
udiRelevanceEntity.setIsDisable(false);
udiRelevanceEntity.setIsUseDy(false);
udiRelevanceEntity.setUuid(udiProductEntity.getUuid());
udiRelevanceEntity.setNeedCert(false);
udiRelevanceEntity.setPurType(1);
udiRelevanceEntity.setAttributeType(addProductRequest.getAttributeType());
udiRelevanceEntity.setHcType(addProductRequest.getHcType());
// TODO: 2024/2/27 初始化其他字段
setUpdateInfo(udiProductEntity, udiRelevanceEntity);
//处理是否需要扫码字段
classifyCodeService.updateRequireScanCode(udiProductEntity);
udiProductDao.insertUdiInfo(udiProductEntity);
udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
}
@Override
public void addDrug(AddProductRequest addProductRequest) {
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(addProductRequest, udiProductEntity);
long relId = gennerOrderUtils.getRelId();
udiProductEntity.setId(relId);
String code = addProductRequest.getCode();
if (StrUtil.isEmpty(code)) {
udiProductEntity.setNameCode(relId + "");
} else {
udiProductEntity.setNameCode(code);
}
udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
udiProductEntity.setCpmctymc(addProductRequest.getCpmctymc());
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setPrice(addProductRequest.getPrice().toString());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN);
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
udiRelevanceEntity.setIsDisable(false);
udiRelevanceEntity.setIsUseDy(false);
udiRelevanceEntity.setUuid(udiProductEntity.getUuid());
udiRelevanceEntity.setNeedCert(false);
udiRelevanceEntity.setPurType(1);
udiRelevanceEntity.setAttributeType(addProductRequest.getAttributeType());
udiRelevanceEntity.setHcType(addProductRequest.getHcType());
// TODO: 2024/2/27 初始化其他字段
setUpdateInfo(udiProductEntity, udiRelevanceEntity);
//处理是否需要扫码字段
classifyCodeService.updateRequireScanCode(udiProductEntity);
udiProductDao.insertUdiInfo(udiProductEntity);
udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
}
/**
*
*
* @param addProductRequest
*/
@Override
public void saveOrUpadateLevelDrug(AddProductRequest addProductRequest) {
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(addProductRequest, udiProductEntity);
if (addProductRequest.getRelId() != null) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(addProductRequest.getRelId());
if (udiRelevanceEntity != null) {
udiProductEntity.setUuid(udiRelevanceEntity.getUuid());
}
} else {
udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
}
udiProductEntity.setCpmctymc(addProductRequest.getCpmctymc());
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setPrice(addProductRequest.getPrice().toString());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN);
//处理是否需要扫码字段
classifyCodeService.updateRequireScanCode(udiProductEntity);
UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(udiProductEntity.getNameCode());
if (udiProductEntity1 != null) {
udiProductDao.updateUdiInfoById(udiProductEntity);
} else
udiProductDao.insertUdiInfo(udiProductEntity);
}
private void setUpdateInfo(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) {
Date now = new Date();
String userId = String.valueOf(customerService.getUserBean().getId());
udiProductEntity.setUpdateTime(now);
udiProductEntity.setUpdateUser(userId);
udiProductEntity.setCreateTime(now);
udiProductEntity.setCreateUser(userId);
udiRelevanceEntity.setModifyTime(now);
udiRelevanceEntity.setUpdateTime(now);
udiRelevanceEntity.setUpdateUser(userId);
udiRelevanceEntity.setCreateTime(now);
udiRelevanceEntity.setCreateUser(userId);
}
}

@ -1,5 +1,6 @@
package com.glxp.api.service.inv.impl; package com.glxp.api.service.inv.impl;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.util.udi.UdiCalCountUtil; import com.glxp.api.util.udi.UdiCalCountUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
@ -23,7 +24,6 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inv.InnerOrderPrintResponse; import com.glxp.api.res.inv.InnerOrderPrintResponse;
import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inv.InnerOrderDetailService; import com.glxp.api.service.inv.InnerOrderDetailService;
@ -34,7 +34,6 @@ import com.glxp.api.service.system.SystemPDFModuleService;
import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.service.system.SystemPDFTemplateService;
import com.glxp.api.util.CustomUtil; import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.FileUtils; import com.glxp.api.util.FileUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;

@ -7,7 +7,6 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import org.eclipse.jdt.internal.compiler.ast.NullLiteral;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;

@ -5,7 +5,6 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.service.basic.impl.UdiProductServiceImpl;
import com.glxp.api.util.PinyinUtils; import com.glxp.api.util.PinyinUtils;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;

@ -1,39 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.basic.BasicSkPrescribeMapper"> <mapper namespace="com.glxp.api.dao.basic.BasicSkPrescribeMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.basic.BasicSkPrescribeEntity">
<!--@mbg.generated-->
<!--@Table basic_sk_prescribe-->
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="code" jdbcType="VARCHAR" property="code"/>
<result column="prescribeDate" jdbcType="TIMESTAMP" property="prescribeDate"/>
<result column="createDr" jdbcType="VARCHAR" property="createDr"/>
<result column="deptCode" jdbcType="VARCHAR" property="deptCode"/>
<result column="deptName" jdbcType="VARCHAR" property="deptName"/>
<result column="diagnosis" jdbcType="VARCHAR" property="diagnosis"/>
<result column="sickerIdFk" jdbcType="VARCHAR" property="sickerIdFk"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="createUser" jdbcType="VARCHAR" property="createUser"/>
<result column="createTime" jdbcType="TIMESTAMP" property="createTime"/>
<result column="updateUser" jdbcType="VARCHAR" property="updateUser"/>
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, code, prescribeDate, createDr, deptCode, deptName, diagnosis, sickerIdFk, remark,
`createUser`, createTime, updateUser, updateTime
</sql>
<select id="filterList" parameterType="com.glxp.api.req.basic.BasicSkPrescribeRequest" <select id="filterList" parameterType="com.glxp.api.req.basic.BasicSkPrescribeRequest"
resultType="com.glxp.api.res.basic.BasicSkPrescribeResponse"> resultType="com.glxp.api.res.basic.BasicSkPrescribeResponse">
SELECT * SELECT basic_sk_prescribe.*, basic_sk_sicker.name sickName
FROM basic_sk_prescribe FROM basic_sk_prescribe
inner join basic_sk_sicker on basic_sk_prescribe.sickerCode = basic_sk_sicker.code
<where> <where>
<if test="code != '' and code != null"> <if test="code != '' and code != null">
AND code LIKE concat('%', #{code}, '%') AND code LIKE concat('%', #{code}, '%')
</if> </if>
<if test="sickerCode != null and sickerCode!=''"> <if test="sickerCode != null and sickerCode != ''">
AND sickerCode = #{sickerCode} AND sickerCode = #{sickerCode}
</if> </if>
</where> </where>

@ -3,10 +3,18 @@
<mapper namespace="com.glxp.api.dao.inout.IoSplitCodeDetailMapper"> <mapper namespace="com.glxp.api.dao.inout.IoSplitCodeDetailMapper">
<select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitDetailCodeRequest" <select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitDetailCodeRequest"
resultType="com.glxp.api.res.inout.IoSplitCodeDetailResponse"> resultType="com.glxp.api.res.inout.IoSplitCodeDetailResponse">
SELECT iscd.*,code,batchNo,produceDate,expireDate,serialNo,orderId SELECT iscd.*,
code,
batchNo,
produceDate,
expireDate,
serialNo,
orderId,
bsp.*
FROM io_split_code_detail iscd FROM io_split_code_detail iscd
left join io_split_code isc left join io_split_code isc
on iscd.codeIdFk = isc.id on iscd.codeIdFk = isc.id
left join basic_sk_prescribe_item bsp on iscd.prescribeNum = bsp.prescribeCode
<where> <where>
<if test="sickerCode != '' and sickerCode != null"> <if test="sickerCode != '' and sickerCode != null">
AND iscd.sickerCode LIKE #{sickerCode} AND iscd.sickerCode LIKE #{sickerCode}

@ -3949,6 +3949,10 @@ CALL Pro_Temp_ColumnWork('basic_udirel', 'useLevelUnit',
CALL Pro_Temp_ColumnWork('basic_udirel', 'useLeverCount', CALL Pro_Temp_ColumnWork('basic_udirel', 'useLeverCount',
'int NULL DEFAULT NULL COMMENT ''使用是当前层级包含计量单元数量''', 'int NULL DEFAULT NULL COMMENT ''使用是当前层级包含计量单元数量''',
1); 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'productsType',
' tinyint NULL DEFAULT b''1'' COMMENT ''产品类型 1:耗材 2:药品''',
1);
CALL Pro_Temp_ColumnWork('io_order', 'workPlaceCode', 'varchar(20)', 1); CALL Pro_Temp_ColumnWork('io_order', 'workPlaceCode', 'varchar(20)', 1);

Loading…
Cancel
Save