库存对比修改

zyy_db
anthonywj 1 year ago
parent 640e3ed137
commit d970162fca

@ -1,5 +1,9 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
@ -7,22 +11,38 @@ import com.github.pagehelper.PageInfo;
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.inv.InvCpLocalProductEntity;
import com.glxp.api.entity.inv.InvCpThrProuductEntity;
import com.glxp.api.entity.inv.StockCompareDetailEntity;
import com.glxp.api.entity.inv.StockCompareEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.enums.StockCompareStatusEnum;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inv.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailVo;
import com.glxp.api.res.inv.StockCompareDetailVo;
import com.glxp.api.service.inv.InvCpLocalProductService;
import com.glxp.api.service.inv.InvCpThrProuductService;
import com.glxp.api.service.inv.StockCompareDetailService;
import com.glxp.api.service.inv.StockCompareService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.vo.inv.InvProductDetailSelectVo;
import com.glxp.api.vo.inv.StockCompareVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@RequestMapping
@ -51,7 +71,7 @@ public class StockCompareController extends BaseController {
public BaseResponse selectInvProductDetail(@RequestBody @Valid InvProductDetailSelectRequest param) {
StockCompareEntity stockCompare = stockCompareService.getById(param.getCompareId());
if (stockCompare == null) {
return ResultVOUtils.error(500, "对比录不存在");
return ResultVOUtils.error(500, "对比录不存在");
}
InvProductDetailSelectQuery invProductDetailSelectQuery = new InvProductDetailSelectQuery(stockCompare.getInvCode(), stockCompare.getMainAction()
@ -83,6 +103,17 @@ public class StockCompareController extends BaseController {
return ResultVOUtils.successMsg("添加成功");
}
/**
*
*/
@PostMapping("/udiwms/stockCompare/addThrProduct")
public BaseResponse addThrProduct(@RequestBody FilterInvProductRequest invProductRequest) {
stockCompareService.dlThrProduct(invProductRequest);
return ResultVOUtils.successMsg("添加成功");
}
/**
*
*
@ -95,6 +126,11 @@ public class StockCompareController extends BaseController {
if (stockCompare == null) {
return ResultVOUtils.error(500, "对比记录不存在");
}
stockCompare.setStatus(StockCompareStatusEnum.FINISHED);
stockCompareService.updateById(stockCompare);
List<StockCompareDetailEntity> stockCompareDetailEntities = stockCompareService.getCompareResult(compareId);
stockCompareDetailService.remove(new QueryWrapper<StockCompareDetailEntity>().eq("compareId", compareId));
stockCompareDetailService.saveBatch(stockCompareDetailEntities);
return ResultVOUtils.successMsg("对比成功");
}
@ -124,6 +160,20 @@ public class StockCompareController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
@Resource
InvCpLocalProductService localProductService;
@Resource
InvCpThrProuductService thrProuductService;
@PostMapping("/udiwms/stockCompare/detail/result")
public BaseResponse realDeatilPage(@RequestBody @Valid InvProductDetailSelectRequest param) {
StockCompareEntity stockCompare = stockCompareService.getById(param.getCompareId());
if (stockCompare == null) {
return ResultVOUtils.error(500, "对比记录不存在");
}
return ResultVOUtils.success(stockCompareService.getCompareResult(param.getCompareId()));
}
@DeleteMapping("/udiwms/stockCompare/detail/del")
public BaseResponse stockCompareDetailPage(@RequestBody @Valid StockCompareDetailDelParam param) {
@ -134,12 +184,35 @@ public class StockCompareController extends BaseController {
if (stockCompare.getStatus() != StockCompareStatusEnum.DRAFT) {
throw new JsonException(500, String.format("非%s状态无法移除", StockCompareStatusEnum.DRAFT.getDesc()));
}
stockCompareDetailService.remove(Wrappers.lambdaQuery(StockCompareDetailEntity.class)
.eq(StockCompareDetailEntity::getCompareId, param.getCompareId())
.eq(StockCompareDetailEntity::getProductId, param.getProductId())
.eq(StockCompareDetailEntity::getMainAction, param.getMainAction())
);
localProductService.remove(Wrappers.lambdaQuery(InvCpLocalProductEntity.class)
.eq(InvCpLocalProductEntity::getCompareId, param.getCompareId())
.eq(InvCpLocalProductEntity::getProductId, param.getProductId())
.eq(InvCpLocalProductEntity::getBatchNo, param.getBatchNo()));
// stockCompareDetailService.remove(Wrappers.lambdaQuery(StockCompareDetailEntity.class)
// .eq(StockCompareDetailEntity::getCompareId, param.getCompareId())
// .eq(StockCompareDetailEntity::getProductId, param.getProductId())
// .eq(StockCompareDetailEntity::getMainAction, param.getMainAction())
// );
return ResultVOUtils.successMsg("移除成功");
}
@PostMapping("/udiwms/stockCompare/compare/exportExcel")
public void selectExportExcel(@RequestBody InvProductDetailSelectRequest invProductDetailSelectRequest, HttpServletResponse response) throws IOException {
// 模拟数据库获取数据
List<StockCompareDetailEntity> stockCompareDetailEntities = stockCompareDetailService.list(new QueryWrapper<StockCompareDetailEntity>().eq("compareId", invProductDetailSelectRequest.getCompareId()));
List<StockCompareDetailVo> stockCompareDetailVos =
BeanUtil.copyToList(stockCompareDetailEntities, StockCompareDetailVo.class);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("库存对比明细" + DateUtil.format(new Date(), "yyyy-MM-dd") + ".xlsx", StandardCharsets.UTF_8.name()));
EasyExcel.write(response.getOutputStream(), StockCompareDetailVo.class).sheet().doWrite(stockCompareDetailVos);
}
}

@ -0,0 +1,9 @@
package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvCpLocalProductEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface InvCpLocalProductMapper extends BaseMapper<InvCpLocalProductEntity> {
}

@ -0,0 +1,9 @@
package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvCpThrProuductEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface InvCpThrProuductMapper extends BaseMapper<InvCpThrProuductEntity> {
}

@ -5,9 +5,13 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inv.StockCompareDetailEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.req.inv.InvProductDetailSelectQuery;
import com.glxp.api.req.inv.InvProductDetailSelectRequest;
import com.glxp.api.res.inv.StockCompareDetailResponse;
import com.glxp.api.vo.inv.InvProductDetailSelectVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Administrator
* @description inv_stock_compare_detail()Mapper
@ -17,6 +21,10 @@ import org.apache.ibatis.annotations.Param;
public interface StockCompareDetailMapper extends BaseMapperPlus<StockCompareDetailMapper, StockCompareDetailEntity, StockCompareDetailEntity> {
Page<InvProductDetailSelectVo> invProductDetailSelectPage(Page pageObj, @Param("param") InvProductDetailSelectQuery query);
List<StockCompareDetailResponse> filterCompareDetail(InvProductDetailSelectRequest invProductDetailSelectRequest);
}

@ -0,0 +1,144 @@
package com.glxp.api.entity.inv;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value = "com-glxp-api-entity-inv-InvCpLocalProduct")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "inv_cp_local_product")
public class InvCpLocalProductEntity implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
/**
* ID
*/
@TableField(value = "compareId")
@ApiModelProperty(value = "对比记录ID")
private Long compareId;
/**
* ID
*/
@TableField(value = "productId")
@ApiModelProperty(value = "产品ID")
private Long productId;
/**
* DI
*/
@TableField(value = "nameCode")
@ApiModelProperty(value = "DI")
private String nameCode;
/**
*
*/
@TableField(value = "cpms")
@ApiModelProperty(value = "产品描述")
private String cpms;
/**
*
*/
@TableField(value = "productName")
@ApiModelProperty(value = "产品名称")
private String productName;
/**
*
*/
@TableField(value = "ggxh")
@ApiModelProperty(value = "规格型号")
private String ggxh;
/**
*
*/
@TableField(value = "manufactory")
@ApiModelProperty(value = "生产企业")
private String manufactory;
/**
*
*/
@TableField(value = "ylqxzcrbarmc")
@ApiModelProperty(value = "医疗器械注册备案人")
private String ylqxzcrbarmc;
/**
*
*/
@TableField(value = "zczbhhzbapzbh")
@ApiModelProperty(value = "注册备案证号")
private String zczbhhzbapzbh;
/**
*
*/
@TableField(value = "mainAction")
@ApiModelProperty(value = "出入库类型")
private String mainAction;
/**
*
*/
@TableField(value = "price")
@ApiModelProperty(value = "价格")
private BigDecimal price;
/**
*
*/
@TableField(value = "`count`")
@ApiModelProperty(value = "数量")
private Integer count;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更细时间")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value = "备注")
private String remark;
@TableField(value = "batchNo")
@ApiModelProperty(value = "批次号")
private String batchNo;
/**
* filtered
*/
@TableField(exist = false)
private Boolean filtered;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,215 @@
package com.glxp.api.entity.inv;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
@ApiModel(value = "com-glxp-api-entity-inv-InvCpThrProuduct")
@Data
@TableName(value = "inv_cp_thr_prouduct")
public class InvCpThrProuductEntity implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "")
private Integer id;
/**
*
*/
@TableField(value = "thrCode")
@ApiModelProperty(value = "第三方产品编码")
private String thrCode;
@TableField(value = "relId")
@ApiModelProperty(value = "产品ID")
private Long relId;
/**
*
*/
@TableField(value = "cpmctymc")
@ApiModelProperty(value = "产品名通用名称")
private String cpmctymc;
/**
* DI
*/
@TableField(value = "nameCode")
@ApiModelProperty(value = "DI标识")
private String nameCode;
/**
*
*/
@TableField(value = "ggxh")
@ApiModelProperty(value = "规格型号")
private String ggxh;
/**
*
*/
@TableField(value = "batchNo")
@ApiModelProperty(value = "批次号")
private String batchNo;
/**
*
*/
@TableField(value = "measname")
@ApiModelProperty(value = "计量单位")
private String measname;
/**
*
*/
@TableField(value = "price")
@ApiModelProperty(value = "价格")
private BigDecimal price;
/**
*
*/
@TableField(value = "productionDate")
@ApiModelProperty(value = "生产日期")
private Date productionDate;
/**
*
*/
@TableField(value = "expireDate")
@ApiModelProperty(value = "失效日期")
private Date expireDate;
/**
*
*/
@TableField(value = "ylqxzcrbarmc")
@ApiModelProperty(value = "医疗器械注册备案人")
private String ylqxzcrbarmc;
/**
* /
*/
@TableField(value = "zczbhhzbapzbh")
@ApiModelProperty(value = "注册/备案号")
private String zczbhhzbapzbh;
/**
*
*/
@TableField(value = "inCount")
@ApiModelProperty(value = "入库数量")
private Integer inCount;
/**
*
*/
@TableField(value = "outCount")
@ApiModelProperty(value = "出库数量")
private Integer outCount;
/**
*
*/
@TableField(value = "reCount")
@ApiModelProperty(value = "实际数量")
private Integer reCount;
/**
*
*/
@TableField(value = "supName")
@ApiModelProperty(value = "配送企业名称")
private String supName;
/**
*
*/
@TableField(value = "deptName")
@ApiModelProperty(value = "部门")
private String deptName;
/**
*
*/
@TableField(value = "deptCode")
@ApiModelProperty(value = "部门编码")
private String deptCode;
/**
*
*/
@TableField(value = "invName")
@ApiModelProperty(value = "仓库")
private String invName;
/**
*
*/
@TableField(value = "invCode")
@ApiModelProperty(value = "仓库编码")
private String invCode;
/**
*
*/
@TableField(value = "spaceName")
@ApiModelProperty(value = "货位")
private String spaceName;
/**
*
*/
@TableField(value = "spaceCode")
@ApiModelProperty(value = "货位编码")
private String spaceCode;
/**
* ID
*/
@TableField(value = "compareId")
@ApiModelProperty(value = "对比记录ID外键")
private Long compareId;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField(value = "mainAction")
@ApiModelProperty(value = "出入库类型")
private String mainAction;
@TableField(value = "remark")
@ApiModelProperty(value = "remark")
private String remark;
/**
* filtered
*/
@TableField(exist = false)
private Boolean filtered;
private static final long serialVersionUID = 1L;
}

@ -1,5 +1,6 @@
package com.glxp.api.entity.inv;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
@ -7,6 +8,9 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* inv_stock_compare_detail
@ -17,27 +21,36 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class StockCompareDetailEntity {
@TableField(value = "id")
private Integer id;
/**
* id
*/
@ExcelProperty(value = "出入库单号", index = 1)
@TableField(value = "compareId")
private Long compareId;
/**
* id
*/
@TableField(value = "productId")
private Long productId;
/**
*
*/
@ExcelProperty(value = "出入库单号", index = 1)
@TableField(value = "thrProductId")
private String thrProductId;
/**
* DI
*/
@ExcelProperty(value = "出入库单号", index = 1)
@TableField(value = "nameCode")
private String nameCode;
@ -80,15 +93,37 @@ public class StockCompareDetailEntity {
@TableField(value = "mainAction")
private String mainAction;
/**
*
*/
@TableField(value = "price")
private BigDecimal price;
/**
*
*/
@TableField(value = "thrPrice")
private BigDecimal thrPrice;
@TableField(value = "count")
private Integer count;
@TableField(value = "thrCount")
private Integer thrCount;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "compareCount")
private Integer compareCount;
@TableField(value = "createTime")
private Date createTime;
@TableField(value = "updateTime")
private Date updateTime;
}

@ -3,9 +3,18 @@ package com.glxp.api.http;
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.thrsys.ThrSystemEntity;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.req.thrsys.ThrOnhandRequest;
import com.glxp.api.req.thrsys.UdiwmsWarehouseRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.ThrInvResultResponse;
import com.glxp.api.res.thrsys.ThrInvProductResponse;
import com.glxp.api.res.thrsys.UdiwmsWarehouseDetail;
import com.glxp.api.service.thrsys.ThrSystemService;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -13,12 +22,16 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class ErpInvClient {
@Resource
HttpOkClient httpOkClient;
@Resource
private OkHttpClient okHttpClient;
@Resource
private ThrSystemService basicThirdSysService;
public BaseResponse<PageSimpleResponse<ThrInvProductResponse>> getInvPrdoductResponse(ThrOnhandRequest onhandRequest, String url) {
@ -62,4 +75,22 @@ public class ErpInvClient {
List<ThrInvProductResponse> responseList = responseBaseResponse.getData().getList();
return responseList;
}
public BaseResponse<PageSimpleResponse<ThrInvResultResponse>> getInvResult(FilterInvProductRequest invProductRequest) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys());
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/inv/getInvResult";
try {
String response = httpOkClient.uCloudPost(url, invProductRequest);
BaseResponse<PageSimpleResponse<ThrInvResultResponse>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrInvResultResponse>>>() {
});
return listBaseResponse;
} catch (Exception e) {
log.error("获取第三方库存明细异常", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
}
}

@ -3,6 +3,7 @@ package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@ -120,5 +121,11 @@ public class FilterInvProductRequest extends ListPageRequest {
private String category;
private Integer filterNoInv;
private Date startDate;
private Date endDate;
private String thirdSys;
private Long compareId;
}

@ -0,0 +1,89 @@
package com.glxp.api.res.inv;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class StockCompareDetailResponse {
/**
* id
*/
private Long compareId;
/**
* id
*/
private Long productId;
/**
*
*/
private String thrProductId;
/**
* DI
*/
private String nameCode;
/**
*
*/
private String cpms;
/**
*
*/
private String productName;
/**
*
*/
private String ggxh;
/**
*
*/
private String manufactory;
/**
* /
*/
private String ylqxzcrbarmc;
/**
* /
*/
private String zczbhhzbapzbh;
private String mainAction;
/**
*
*/
private BigDecimal price;
/**
*
*/
private BigDecimal thrPrice;
private Integer count;
private Integer thrCount;
/**
*
*/
private String batchNo;
/**
*
*/
private Integer compareCount;
private Date createTime;
private Date updateTime;
}

@ -0,0 +1,97 @@
package com.glxp.api.res.inv;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class StockCompareDetailVo {
/**
* id
*/
@ExcelProperty(value = "比对记录号", index = 1)
private Long compareId;
// /**
// * 产品id
// */
// private Long productId;
/**
* DI
*/
@ExcelProperty(value = "DI/物资编码", index = 2)
private String nameCode;
/**
*
*/
@ExcelProperty(value = "第三方产品编码", index = 3)
private String thrProductId;
/**
*
*/
@ExcelProperty(value = "产品描述", index = 16)
private String cpms;
/**
*
*/
@ExcelProperty(value = "产品名称", index = 4)
private String productName;
/**
*
*/
@ExcelProperty(value = "规格型号", index = 5)
private String ggxh;
/**
*
*/
@ExcelProperty(value = "生产厂家", index = 12)
private String manufactory;
/**
* /
*/
@ExcelProperty(value = "医疗器械注册/备案人名称", index = 13)
private String ylqxzcrbarmc;
/**
* /
*/
@ExcelProperty(value = "注册证编号/备案批准编号", index = 14)
private String zczbhhzbapzbh;
@ExcelProperty(value = "出入库类型", index = 11)
private String mainAction;
/**
*
*/
@ExcelProperty(value = "价格", index = 9)
private BigDecimal price;
/**
*
*/
@ExcelProperty(value = "第三方价格", index = 10)
private BigDecimal thrPrice;
@ExcelProperty(value = "UDI产品数量", index = 7)
private Integer count;
@ExcelProperty(value = "第三方系统产品数量", index = 8)
private Integer thrCount;
/**
*
*/
@ExcelProperty(value = "批次号", index = 6)
private String batchNo;
@ExcelProperty(value = "比对时间", index = 15)
private Date updateTime;
}

@ -0,0 +1,32 @@
package com.glxp.api.res.inv;
import lombok.Data;
@Data
public class ThrInvResultResponse {
private Integer id;
private String cpmctymc;
private String thrCode;
private String nameCode;
private String ggxh;
private String batchNo;
private String measname;
private String price;
private String productionDate;
private String expireDate;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private Integer inCount;
private Integer outCount;
private String supName;
private String deptName;
private String deptCode;
private String invName;
private String invCode;
private String spaceCode;
private String spaceName;
private Integer reCount;
private String mainAction;
private String remark;
}

@ -0,0 +1,10 @@
package com.glxp.api.service.inv;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.inv.InvCpLocalProductMapper;
import com.glxp.api.entity.inv.InvCpLocalProductEntity;
@Service
public class InvCpLocalProductService extends ServiceImpl<InvCpLocalProductMapper, InvCpLocalProductEntity> {
}

@ -0,0 +1,10 @@
package com.glxp.api.service.inv;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.inv.InvCpThrProuductEntity;
import com.glxp.api.dao.inv.InvCpThrProuductMapper;
@Service
public class InvCpThrProuductService extends ServiceImpl<InvCpThrProuductMapper, InvCpThrProuductEntity> {
}

@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.inv.StockCompareDetailEntity;
import com.glxp.api.req.inv.InvProductDetailSelectQuery;
import com.glxp.api.req.inv.InvProductDetailSelectRequest;
import com.glxp.api.res.inv.StockCompareDetailResponse;
import com.glxp.api.service.CustomService;
import com.glxp.api.vo.inv.InvProductDetailSelectVo;
import java.util.List;
/**
* inv_stock_compare_detailService
*/
@ -14,6 +18,9 @@ public interface StockCompareDetailService extends CustomService<StockCompareDet
Page<InvProductDetailSelectVo> invProductDetailSelectPage(InvProductDetailSelectQuery query);
List<StockCompareDetailResponse> filterCompareDetail(InvProductDetailSelectRequest invProductDetailSelectRequest);
}

@ -3,8 +3,10 @@ package com.glxp.api.service.inv;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.inv.StockCompareDetailEntity;
import com.glxp.api.entity.inv.StockCompareEntity;
import com.glxp.api.dao.inv.StockCompareMapper;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.req.inv.StockCompareDetailParam;
import com.glxp.api.req.inv.StockCompareParam;
import com.glxp.api.req.inv.StockCompareQuery;
@ -12,6 +14,8 @@ import com.glxp.api.service.CustomService;
import com.glxp.api.vo.inv.StockCompareVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* inv_stock_compareService
*/
@ -24,6 +28,10 @@ public interface StockCompareService extends CustomService<StockCompareEntity> {
void addProduct(StockCompareDetailParam param);
void delete(Long compareId);
void dlThrProduct(FilterInvProductRequest filterInvProductRequest);
List<StockCompareDetailEntity> getCompareResult(Long compareId);
}

@ -5,11 +5,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.inv.StockCompareDetailMapper;
import com.glxp.api.entity.inv.StockCompareDetailEntity;
import com.glxp.api.req.inv.InvProductDetailSelectQuery;
import com.glxp.api.req.inv.InvProductDetailSelectRequest;
import com.glxp.api.res.inv.StockCompareDetailResponse;
import com.glxp.api.service.CustomServiceImpl;
import com.glxp.api.service.inv.StockCompareDetailService;
import com.glxp.api.vo.inv.InvProductDetailSelectVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* inv_stock_compareService
@ -20,7 +24,12 @@ public class StockCompareDetailServiceImpl extends CustomServiceImpl<StockCompar
@Override
public Page<InvProductDetailSelectVo> invProductDetailSelectPage(InvProductDetailSelectQuery query) {
return super.baseMapper.invProductDetailSelectPage(query.getPageObj(),query);
return super.baseMapper.invProductDetailSelectPage(query.getPageObj(), query);
}
@Override
public List<StockCompareDetailResponse> filterCompareDetail(InvProductDetailSelectRequest invProductDetailSelectRequest) {
return super.baseMapper.filterCompareDetail(invProductDetailSelectRequest);
}
}

@ -1,29 +1,41 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.bean.BeanUtil;
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.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.dao.inv.StockCompareMapper;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inv.InvCpLocalProductEntity;
import com.glxp.api.entity.inv.InvCpThrProuductEntity;
import com.glxp.api.entity.inv.StockCompareDetailEntity;
import com.glxp.api.entity.inv.StockCompareEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.enums.StockCompareStatusEnum;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.inv.InvProductDetailSelectQuery;
import com.glxp.api.req.inv.StockCompareDetailParam;
import com.glxp.api.http.ErpInvClient;
import com.glxp.api.req.inv.*;
import com.glxp.api.req.inv.StockCompareDetailParam.selectInfo;
import com.glxp.api.req.inv.StockCompareParam;
import com.glxp.api.req.inv.StockCompareQuery;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.res.inv.ThrInvResultResponse;
import com.glxp.api.service.CustomServiceImpl;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inv.InvCpLocalProductService;
import com.glxp.api.service.inv.InvCpThrProuductService;
import com.glxp.api.service.inv.StockCompareDetailService;
import com.glxp.api.service.inv.StockCompareService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.SnowflakeUtil;
import com.glxp.api.vo.inv.InvProductDetailSelectVo;
import com.glxp.api.vo.inv.StockCompareVo;
@ -32,9 +44,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@ -114,6 +126,37 @@ public class StockCompareServiceImpl extends CustomServiceImpl<StockCompareMappe
.eq(StockCompareDetailEntity::getCompareId, compareId));
}
@Resource
ErpInvClient erpInvClient;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
InvCpThrProuductService invCpThrProuductService;
@Resource
InvCpLocalProductService invCpLocalProductService;
@Override
public void dlThrProduct(FilterInvProductRequest filterInvProductRequest) {
BaseResponse<PageSimpleResponse<ThrInvResultResponse>> baseResponse = erpInvClient.getInvResult(filterInvProductRequest);
if (baseResponse.getCode() == 20000) {
List<ThrInvResultResponse> list = baseResponse.getData().getList();
list.forEach(item -> {
InvCpThrProuductEntity invCpThrProuductEntity = new InvCpThrProuductEntity();
BeanUtil.copyProperties(item, invCpThrProuductEntity);
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(filterInvProductRequest.getThirdSys(), item.getThrCode());
if (udiRelevanceEntity != null)
invCpThrProuductEntity.setRelId(udiRelevanceEntity.getId());
invCpThrProuductEntity.setBatchNo(item.getBatchNo());
invCpThrProuductEntity.setUpdateTime(new Date());
invCpThrProuductEntity.setCreateTime(new Date());
invCpThrProuductEntity.setCompareId(filterInvProductRequest.getCompareId());
invCpThrProuductService.save(invCpThrProuductEntity);
});
}
}
@Override
@Transactional
public void addProduct(StockCompareDetailParam param) {
@ -135,7 +178,7 @@ public class StockCompareServiceImpl extends CustomServiceImpl<StockCompareMappe
Page<InvProductDetailSelectVo> page = null;
boolean hasNext = false;
do {
PageHelper.startPage(invProductDetailSelectQuery.getPage(),invProductDetailSelectQuery.getLimit());
PageHelper.startPage(invProductDetailSelectQuery.getPage(), invProductDetailSelectQuery.getLimit());
page = stockCompareDetailService.invProductDetailSelectPage(invProductDetailSelectQuery);
invProductDetailSelectQuery.setPage(invProductDetailSelectQuery.getPage() + 1);
result.addAll(page.getRecords());
@ -143,12 +186,11 @@ public class StockCompareServiceImpl extends CustomServiceImpl<StockCompareMappe
PageInfo<InvProductDetailSelectVo> pageInfo = new PageInfo<>(page.getRecords());
hasNext = pageInfo.isHasNextPage();
} while (hasNext);
List<StockCompareDetailEntity> stockCompareDetailList = new ArrayList<>(result.size());
List<InvCpLocalProductEntity> cpLocalProductEntities = new ArrayList<>(result.size());
result.forEach(i -> {
StockCompareDetailEntity stockCompareDetail = StockCompareDetailEntity.builder()
InvCpLocalProductEntity stockCompareDetail = InvCpLocalProductEntity.builder()
.compareId(param.getCompareId())
.productId(i.getProductId())
.thrProductId(i.getThrProductId())
.productName(i.getCpmctymc())
.mainAction(i.getMainAction())
.nameCode(i.getNameCode())
@ -157,11 +199,118 @@ public class StockCompareServiceImpl extends CustomServiceImpl<StockCompareMappe
.manufactory(i.getManufactory())
.ylqxzcrbarmc(i.getYlqxzcrbarmc())
.zczbhhzbapzbh(i.getZczbhhzbapzbh())
.batchNo(i.getBatchNo())
.count(i.getCount())
.createTime(new Date())
.updateTime(new Date())
.build();
stockCompareDetailList.add(stockCompareDetail);
cpLocalProductEntities.add(stockCompareDetail);
});
stockCompareDetailService.replaceBatch(stockCompareDetailList);
invCpLocalProductService.saveBatch(cpLocalProductEntities);
}
@Resource
InvCpLocalProductService localProductService;
@Resource
InvCpThrProuductService thrProuductService;
@Override
public List<StockCompareDetailEntity> getCompareResult(Long compareId) {
List<InvCpLocalProductEntity> invCpLocalProductEntities = localProductService.list(new QueryWrapper<InvCpLocalProductEntity>().eq("compareId", compareId));
List<InvCpThrProuductEntity> invCpThrProuductEntities = thrProuductService.list(new QueryWrapper<InvCpThrProuductEntity>().eq("compareId", compareId));
List<StockCompareDetailEntity> stockCompareDetailEntities = new ArrayList<>();
Map<String, StockCompareDetailEntity> mapDetail = new HashMap<>();
for (InvCpLocalProductEntity invCpLocalProductEntity : invCpLocalProductEntities) {
for (InvCpThrProuductEntity invCpThrProuductEntity : invCpThrProuductEntities) {
if (invCpLocalProductEntity.getProductId().equals(invCpThrProuductEntity.getRelId()) && invCpLocalProductEntity.getBatchNo().equals(invCpThrProuductEntity.getBatchNo())) {
String key = invCpLocalProductEntity.getProductId() + invCpLocalProductEntity.getBatchNo();
if (mapDetail.get(key) == null) {
StockCompareDetailEntity stockCompareDetailEntity = StockCompareDetailEntity.builder()
.compareId(invCpLocalProductEntity.getCompareId())
.productId(invCpLocalProductEntity.getProductId())
.nameCode(invCpLocalProductEntity.getNameCode())
.cpms(invCpLocalProductEntity.getCpms())
.productName(invCpLocalProductEntity.getProductName())
.ggxh(invCpLocalProductEntity.getGgxh())
.manufactory(invCpLocalProductEntity.getManufactory())
.ylqxzcrbarmc(invCpLocalProductEntity.getYlqxzcrbarmc())
.zczbhhzbapzbh(invCpLocalProductEntity.getZczbhhzbapzbh()).
mainAction(invCpLocalProductEntity.getMainAction()).
price(invCpLocalProductEntity.getPrice()).
count(invCpLocalProductEntity.getCount()).
createTime(new Date())
.updateTime(new Date())
.batchNo(invCpLocalProductEntity.getBatchNo())
.thrCount(invCpThrProuductEntity.getReCount())
.thrProductId(invCpThrProuductEntity.getThrCode())
.thrPrice(invCpThrProuductEntity.getPrice())
.build();
mapDetail.put(key, stockCompareDetailEntity);
} else {
mapDetail.get(key).setThrCount(IntUtil.value(mapDetail.get(key).getCount()) + IntUtil.value(invCpThrProuductEntity.getReCount()));
}
invCpThrProuductEntity.setFiltered(true);
invCpLocalProductEntity.setFiltered(true);
}
}
}
for (StockCompareDetailEntity value : mapDetail.values()) {
stockCompareDetailEntities.add(value);
}
for (InvCpLocalProductEntity invCpLocalProductEntity : invCpLocalProductEntities) {
if (!IntUtil.value(invCpLocalProductEntity.getFiltered())) {
StockCompareDetailEntity stockCompareDetailEntity = StockCompareDetailEntity.builder()
.compareId(invCpLocalProductEntity.getCompareId())
.productId(invCpLocalProductEntity.getProductId())
.nameCode(invCpLocalProductEntity.getNameCode())
.cpms(invCpLocalProductEntity.getCpms())
.productName(invCpLocalProductEntity.getProductName())
.ggxh(invCpLocalProductEntity.getGgxh())
.manufactory(invCpLocalProductEntity.getManufactory())
.ylqxzcrbarmc(invCpLocalProductEntity.getYlqxzcrbarmc())
.zczbhhzbapzbh(invCpLocalProductEntity.getZczbhhzbapzbh()).
mainAction(invCpLocalProductEntity.getMainAction()).
createTime(new Date())
.updateTime(new Date())
.count(invCpLocalProductEntity.getCount())
.batchNo(invCpLocalProductEntity.getBatchNo())
.thrCount(0)
.price(invCpLocalProductEntity.getPrice())
.thrProductId(null)
.thrPrice(null)
.build();
stockCompareDetailEntities.add(stockCompareDetailEntity);
// mapDetail.put(stockCompareDetailEntity.getProductId() + stockCompareDetailEntity.getBatchNo(), stockCompareDetailEntity);
}
}
for (InvCpThrProuductEntity invCpThrProuductEntity : invCpThrProuductEntities) {
if (!IntUtil.value(invCpThrProuductEntity.getFiltered())) {
StockCompareDetailEntity stockCompareDetailEntity = StockCompareDetailEntity.builder()
.compareId(invCpThrProuductEntity.getCompareId())
.productId(invCpThrProuductEntity.getRelId())
.nameCode(invCpThrProuductEntity.getNameCode())
.productName(invCpThrProuductEntity.getCpmctymc())
.ggxh(invCpThrProuductEntity.getGgxh())
.manufactory(invCpThrProuductEntity.getYlqxzcrbarmc())
.ylqxzcrbarmc(invCpThrProuductEntity.getYlqxzcrbarmc())
.zczbhhzbapzbh(invCpThrProuductEntity.getZczbhhzbapzbh()).
mainAction(invCpThrProuductEntity.getMainAction()).
createTime(new Date())
.updateTime(new Date())
.batchNo(invCpThrProuductEntity.getBatchNo())
.thrCount(invCpThrProuductEntity.getReCount())
.thrProductId(invCpThrProuductEntity.getThrCode())
.thrPrice(invCpThrProuductEntity.getPrice())
.build();
stockCompareDetailEntities.add(stockCompareDetailEntity);
// mapDetail.put(stockCompareDetailEntity.getProductId() + stockCompareDetailEntity.getBatchNo(), stockCompareDetailEntity);
}
}
return stockCompareDetailEntities;
}
}

@ -18,5 +18,6 @@ public class InvProductDetailSelectVo {
private String ylqxzcrbarmc;
private String mainAction;
private Integer count;
private String batchNo;
}

@ -468,6 +468,12 @@
<if test="basicPrductRemak8 != '' and basicPrductRemak8 != null">
AND basic_products.basicPrductRemak8 like concat('%', #{basicPrductRemak8}, '%')
</if>
<if test="isDisable == false">
AND (basic_udirel.isDisable is null or basic_udirel.isDisable = false)
</if>
<if test="isDisable == true">
AND basic_udirel.isDisable = true
</if>
</where>
<choose>
<when test="key != null and key != ''">

@ -0,0 +1,29 @@
<?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">
<mapper namespace="com.glxp.api.dao.inv.InvCpLocalProductMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inv.InvCpLocalProductEntity">
<!--@mbg.generated-->
<!--@Table inv_cp_local_product-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="compareId" jdbcType="BIGINT" property="compareId" />
<result column="productId" jdbcType="BIGINT" property="productId" />
<result column="nameCode" jdbcType="VARCHAR" property="nameCode" />
<result column="cpms" jdbcType="VARCHAR" property="cpms" />
<result column="productName" jdbcType="VARCHAR" property="productName" />
<result column="ggxh" jdbcType="VARCHAR" property="ggxh" />
<result column="manufactory" jdbcType="VARCHAR" property="manufactory" />
<result column="ylqxzcrbarmc" jdbcType="VARCHAR" property="ylqxzcrbarmc" />
<result column="zczbhhzbapzbh" jdbcType="VARCHAR" property="zczbhhzbapzbh" />
<result column="mainAction" jdbcType="VARCHAR" property="mainAction" />
<result column="price" jdbcType="DECIMAL" property="price" />
<result column="count" jdbcType="INTEGER" property="count" />
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, compareId, productId, nameCode, cpms, productName, ggxh, manufactory, ylqxzcrbarmc,
zczbhhzbapzbh, mainAction, price, `count`, createTime, updateTime, remark
</sql>
</mapper>

@ -0,0 +1,42 @@
<?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">
<mapper namespace="com.glxp.api.dao.inv.InvCpThrProuductMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inv.InvCpThrProuductEntity">
<!--@mbg.generated-->
<!--@Table inv_cp_thr_prouduct-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="thrCode" jdbcType="VARCHAR" property="thrCode" />
<result column="cpmctymc" jdbcType="VARCHAR" property="cpmctymc" />
<result column="nameCode" jdbcType="VARCHAR" property="nameCode" />
<result column="ggxh" jdbcType="VARCHAR" property="ggxh" />
<result column="batchNo" jdbcType="INTEGER" property="batchNo" />
<result column="measname" jdbcType="VARCHAR" property="measname" />
<result column="price" jdbcType="DECIMAL" property="price" />
<result column="productionDate" jdbcType="TIMESTAMP" property="productionDate" />
<result column="expireDate" jdbcType="TIMESTAMP" property="expireDate" />
<result column="ylqxzcrbarmc" jdbcType="VARCHAR" property="ylqxzcrbarmc" />
<result column="zczbhhzbapzbh" jdbcType="VARCHAR" property="zczbhhzbapzbh" />
<result column="inCount" jdbcType="INTEGER" property="inCount" />
<result column="outCount" jdbcType="INTEGER" property="outCount" />
<result column="reCount" jdbcType="INTEGER" property="reCount" />
<result column="supName" jdbcType="VARCHAR" property="supName" />
<result column="deptName" jdbcType="VARCHAR" property="deptName" />
<result column="deptCode" jdbcType="VARCHAR" property="deptCode" />
<result column="invName" jdbcType="VARCHAR" property="invName" />
<result column="invCode" jdbcType="VARCHAR" property="invCode" />
<result column="spaceName" jdbcType="VARCHAR" property="spaceName" />
<result column="spaceCode" jdbcType="VARCHAR" property="spaceCode" />
<result column="compareId" jdbcType="BIGINT" property="compareId" />
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
<result column="mainAction" jdbcType="VARCHAR" property="mainAction" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, thrCode, cpmctymc, nameCode, ggxh, batchNo, measname, price, productionDate,
expireDate, ylqxzcrbarmc, zczbhhzbapzbh, inCount, outCount, reCount, supName, deptName,
deptCode, invName, invCode, spaceName, spaceCode, compareId, createTime, updateTime,
mainAction, remark
</sql>
</mapper>

@ -3,10 +3,9 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.StockCompareDetailMapper">
<select id="invProductDetailSelectPage" resultType="com.glxp.api.vo.inv.InvProductDetailSelectVo">
SELECT
ipd.relId productId,
SELECT ipd.relId productId,
ipd.batchNo,
udi.${param.thirdTableField} thrProductId,
p.cpmctymc,
p.ggxh,
@ -16,23 +15,22 @@
p.zczbhhzbapzbh,
p.ylqxzcrbarmc,
ipd.mainAction,
sum( ipd.count ) count
FROM
inv_product_detail ipd
sum(ipd.count) count
FROM inv_product_detail ipd
LEFT JOIN basic_udirel udi ON udi.id = ipd.relId
LEFT JOIN basic_products p ON p.uuid = udi.uuid
<where>
udi.${param.thirdTableField} is not null
and ipd.invCode = #{param.invCode}
and ipd.updateTime between concat(#{param.compareStartDate},' 00:00:00') and
concat(#{param.compareEndDate},' 23:59:59')
<if test="param.mainAction!=null and param.mainAction!=''">
and ipd.updateTime between concat(#{param.compareStartDate}, ' 00:00:00') and
concat(#{param.compareEndDate}, ' 23:59:59')
<if test="param.mainAction != null and param.mainAction != ''">
and ipd.mainAction = #{param.mainAction}
</if>
<if test="param.action!=null and param.action!=''">
<if test="param.action != null and param.action != ''">
and ipd.action = #{param.action}
</if>
<if test="param.productIds!=null">
<if test="param.productIds != null">
and ipd.relId in
<foreach collection="param.productIds" open="(" item="item" separator="," close=")">
#{item}
@ -46,4 +44,24 @@
ipd.relId,
ipd.mainAction
</select>
<select id="filterCompareDetail" resultType="com.glxp.api.res.inv.StockCompareDetailResponse">
SELECT p.cpmctymc,
p.ggxh,
p.nameCode,
p.cpms,
p.manufactory,
p.zczbhhzbapzbh,
p.ylqxzcrbarmc,
ipd.mainAction,
ipd.*
FROM inv_stock_compare_detail ipd
LEFT JOIN basic_udirel udi ON udi.id = ipd.productId
LEFT JOIN basic_products p ON p.uuid = udi.uuid
<where>
<if test="compareId != null and compareId != ''">
and ipd.compareId = #{compareId}
</if>
</where>
</select>
</mapper>

@ -162,6 +162,224 @@ CALL Pro_Temp_ColumnWork('thr_products', 'prcitmcode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('thr_products', 'invCode', 'varchar(255)', 1);
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80021
Source Host : localhost:3306
Source Schema : udi_wms_ct
Target Server Type : MySQL
Target Server Version : 80021
File Encoding : 65001
Date: 18/01/2024 11:05:42
*/
-- ----------------------------
-- Table structure for basic_sk_prescirbe_detail
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_prescirbe_detail`
(
`id` bigint NOT NULL,
`relId` bigint NULL DEFAULT NULL COMMENT '耗材产品id',
`thrName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '耗材名称',
`thrCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '耗材编码',
`pId` bigint NULL DEFAULT NULL COMMENT '项目组套外键',
`count` int NULL DEFAULT NULL COMMENT '数量',
`measureCount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量数量',
`measureUnit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量单位',
`category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类别',
`frequency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '频率',
`price` decimal(10, 2) NULL DEFAULT NULL COMMENT '价格',
`ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格型号',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`createTime` datetime(0) NULL DEFAULT NULL,
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`updateTime` datetime(0) NULL DEFAULT NULL,
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '处方用药信息表'
ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for basic_sk_prescribe
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_prescribe`
(
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '处方编码',
`sickerCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '病人编码',
`prescribeDate` datetime(0) NULL DEFAULT NULL COMMENT '开方时间',
`createDr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '开方医生',
`amount` decimal(16, 4) NULL DEFAULT NULL COMMENT '处方费用',
`deptCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '就诊科室编码',
`deptName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '就诊科室名称',
`diagnosis` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '诊断内容',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人',
`updateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`adNum` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`code`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '患者处方'
ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for basic_sk_prescribe_item
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_prescribe_item`
(
`id` bigint NOT NULL,
`thrId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '第三方id',
`sickerCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '患者编码',
`prescribeCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '处方编码',
`relId` bigint NULL DEFAULT NULL COMMENT '耗材产品id',
`itemName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称',
`itemCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编码',
`measureCount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量数量',
`measureUnit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量单位',
`category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类别',
`frequency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '频率',
`count` int NULL DEFAULT NULL COMMENT '数量',
`price` decimal(16, 4) NULL DEFAULT NULL COMMENT '单价',
`amount` decimal(16, 4) NULL DEFAULT NULL COMMENT '总价',
`ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格型号',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`adNum` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '处方用药信息表'
ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for basic_sk_prescribe_item_detail
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_prescribe_item_detail`
(
`id` bigint NOT NULL,
`pId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`sickerCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '患者编码',
`prescribeCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '处方编码',
`relId` bigint NULL DEFAULT NULL COMMENT '耗材产品id',
`thrName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '耗材名称',
`thrCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '耗材编码',
`measureCount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量数量',
`measureUnit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量单位',
`category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类别',
`frequency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '频率',
`count` int NULL DEFAULT NULL COMMENT '数量',
`price` decimal(16, 4) NULL DEFAULT NULL COMMENT '价格',
`ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格型号',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`nameCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`amount` decimal(10, 3) NULL DEFAULT NULL,
`adNum` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`updateTime` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '处方用药信息表'
ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for basic_sk_project
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_project`
(
`id` bigint NOT NULL AUTO_INCREMENT,
`idCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '自定义编码',
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '项目编码',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '项目名称',
`category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类别',
`ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`createTime` datetime(0) NULL DEFAULT NULL,
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`updateTime` datetime(0) NULL DEFAULT NULL,
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`type` tinyint NULL DEFAULT NULL COMMENT '类型1定数包内部使用2项目、组套外部关联',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1726788278562713601
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci
ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for basic_sk_project_detail
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_project_detail`
(
`id` bigint NOT NULL,
`relId` bigint NULL DEFAULT NULL COMMENT '耗材产品id',
`thrName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '耗材名称',
`thrCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '耗材编码',
`pId` bigint NULL DEFAULT NULL COMMENT '定数包模板id',
`count` int NULL DEFAULT NULL COMMENT '数量',
`measureCount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量数量',
`measureUnit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量单位',
`category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类别',
`frequency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '频率',
`price` decimal(10, 2) NULL DEFAULT NULL COMMENT '价格',
`ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格型号',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`createTime` datetime(0) NULL DEFAULT NULL,
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`updateTime` datetime(0) NULL DEFAULT NULL,
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '定数包产品关联表'
ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for basic_sk_sicker
-- ----------------------------
CREATE TABLE IF NOT EXISTS `basic_sk_sicker`
(
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '患者编码',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`adNum` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '住院号',
`idNum` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证号',
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`gender` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
`job` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职业',
`bornDate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '出生年月',
`nationality` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '国籍',
`education` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文化程度',
`guardianName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '监护人',
`guardianRel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '监护人与患者关系',
`curAddr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '现居住地',
`kosekiAddr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '户籍地',
`medicalIns` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '医保',
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人',
`updateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`deptName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`deptCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`code`) USING BTREE,
INDEX `code` (`code`) USING BTREE,
INDEX `adNum` (`adNum`) USING BTREE,
INDEX `name` (`name`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '患者信息'
ROW_FORMAT = DYNAMIC;
CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'adNum', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item', 'adNum', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item_detail', 'nameCode', 'varchar(255)', 1);
@ -243,5 +461,12 @@ CREATE TABLE IF NOT EXISTS `io_order_sk_prescribe`
ROW_FORMAT = DYNAMIC;
CALL Pro_Temp_ColumnWork('inv_stock_compare_detail', 'price', 'decimal(10, 3)', 1);
CALL Pro_Temp_ColumnWork('inv_stock_compare_detail', 'thrPrice', 'decimal(10, 3)', 1);
CALL Pro_Temp_ColumnWork('inv_stock_compare_detail', 'batchNo', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_stock_compare_detail', 'createTime', 'datetime', 1);
CALL Pro_Temp_ColumnWork('inv_stock_compare_detail', 'updateTime', 'datetime', 1);

Loading…
Cancel
Save