feat: 三方出入库明细功能

dev_20240306
chenhc 1 year ago
parent eea1eab737
commit 9e75867541

@ -80,5 +80,22 @@ public class TestController {
return ResultVOUtils.success("");
}
@GetMapping("/test/downloadInvGhOrder")
public BaseResponse downloadInvGhOrder() {
ThrSystemDetailEntity thrSystemDetailEntity = new ThrSystemDetailEntity();
thrSystemDetailEntity.setThirdSysFk("thirdId");
thrInvOrderService.downloadInvGhOrder(thrSystemDetailEntity);
return ResultVOUtils.success("");
}
@GetMapping("/test/downloadInvPhOrder")
public BaseResponse downloadInvPhOrder() {
ThrSystemDetailEntity thrSystemDetailEntity = new ThrSystemDetailEntity();
thrSystemDetailEntity.setThirdSysFk("thirdId");
thrInvOrderService.downloadInvPhOrder(thrSystemDetailEntity);
return ResultVOUtils.success("");
}
}

@ -159,6 +159,16 @@ public class ThrInvOrderDetail implements Serializable {
*/
private String serialNo;
/**
*
*/
private String sickerCode;
/**
*
*/
private String sickerName;
private static final long serialVersionUID = 1L;

@ -81,7 +81,7 @@ public class ErpInvClient {
public BaseResponse<PageSimpleResponse<ThrInvResultResponse>> getInvSfResult(FilterInvProductRequest invProductRequest) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys());
// String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue();
String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvResult";
String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvFeeResult";
try {
String response = httpOkClient.uCloudPost(url, invProductRequest);
BaseResponse<PageSimpleResponse<ThrInvResultResponse>> listBaseResponse =
@ -113,7 +113,7 @@ public class ErpInvClient {
public BaseResponse<PageSimpleResponse<ThrInvResultResponse>> getInvGhResult(FilterInvProductRequest invProductRequest) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys());
// String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue();
String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvResult";
String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvCodeResult";
try {
String response = httpOkClient.uCloudPost(url, invProductRequest);
BaseResponse<PageSimpleResponse<ThrInvResultResponse>> listBaseResponse =

@ -13,12 +13,14 @@ import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.inout.IoCodeTempDao;
import com.glxp.api.dao.thrsys.ThrInvOrderDetailMapper;
import com.glxp.api.dao.thrsys.ThrInvOrderMapper;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.BasicSkProjectDetailEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
@ -88,6 +90,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
IoAddInoutService ioAddInoutService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoCodeTempDao ioCodeTempDao;
// 设置要输出的日期格式
@ -208,6 +212,26 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
thrInvOrderDetails.add(thrInvOrderDetail);
} else {
String mainAction = item.getMainAction();
String thrCode = item.getThrCode();
Integer count;
if (ConstantType.TYPE_PUT.equals(mainAction)) {
count = Integer.valueOf(item.getInCount());
} else {
count = Integer.valueOf(item.getOutCount());
}
BeanUtils.copyProperties(item, thrInvOrderDetail);
thrInvOrderDetail.setOrderIdFk(billNo);
thrInvOrderDetail.setNameCode(nameCode);
thrInvOrderDetail.setUdiCode(udiCode);
thrInvOrderDetail.setThrCode(thrCode);
thrInvOrderDetail.setReCount(String.valueOf(count));
thrInvOrderDetail.setBatchNo(udiEntity.getBatchNo());
thrInvOrderDetail.setProductionDate(udiEntity.getProduceDate());
thrInvOrderDetail.setExpireDate(udiEntity.getExpireDate());
thrInvOrderDetail.setSerialNo(udiEntity.getSerialNo());
thrInvOrderDetails.add(thrInvOrderDetail);
exmsg.append(udiCode + ",");
}
});
@ -216,7 +240,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
exmsg.deleteCharAt(exmsg.length() - 1);
exmsg.insert(0, "以下UDI码未匹配成功");
thrInvOrder.setExMsg(String.valueOf(exmsg));
}else {
} else {
thrInvOrder.setExMsg("");
}
@ -337,8 +361,6 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
ioOrderService.insertOrder(ioOrderEntity);
thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
thrInvOrder.setUpdateTime(new Date());
thrInvOrder.setCreateTime(new Date());
thrInvOrder.setCreateUser(userId + "");
thrInvOrder.setUpdateUser(userId + "");
thrInvOrderMapper.updateByPrimaryKey(thrInvOrder);
ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz);
@ -351,9 +373,59 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
@Override
public boolean generateGhOrder(GenerateOrderRequest generateOrderRequest) {
String billNo = generateOrderRequest.getBillNo();
// TODO: 2024/3/5
//通过单号获取单据信息
QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>();
qw.eq("billNo", billNo);
ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw);
if (Objects.isNull(thrInvOrder)) return false;
//通过单号获取单据明细信息
QueryWrapper<ThrInvOrderDetail> qwd = new QueryWrapper<>();
qwd.eq("orderIdFk", billNo);
List<ThrInvOrderDetail> thrInvOrderDetails = thrInvOrderDetailMapper.selectList(qwd);
if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false;
//校验单据的relId有null不生成单据
if (!inspectionDocuments(thrInvOrderDetails)) return false;
//新单号
String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd"));
IoOrderEntity ioOrderEntity = new IoOrderEntity();
ioOrderEntity.setBillNo(newBillNo);
ioOrderEntity.setMainAction(thrInvOrder.getMainAction());
ioOrderEntity.setFromCorp(generateOrderRequest.getFromCorp());
ioOrderEntity.setInvCode(thrInvOrder.getInvCode());
ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode());
ioOrderEntity.setAction(generateOrderRequest.getAction());
ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
ioOrderEntity.setCorpOrderId(billNo);//单据号
ioOrderEntity.setUpdateTime(new Date());
ioOrderEntity.setCreateTime(new Date());
Long userId = customerService.getUserId();
ioOrderEntity.setCreateUser(userId + "");
ioOrderEntity.setUpdateUser(userId + "");
ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL);//正常单据处理
List<IoCodeTempEntity> newIoCodeTemps = new ArrayList<>(thrInvOrderDetails.size());
if (!copyIoCodeTemps(thrInvOrderDetails, newIoCodeTemps, newBillNo,generateOrderRequest)) {
return false;
}
ioOrderService.insertOrder(ioOrderEntity);
thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
thrInvOrder.setUpdateTime(new Date());
thrInvOrder.setUpdateUser(userId + "");
thrInvOrderMapper.updateByPrimaryKey(thrInvOrder);
ioCodeTempDao.insertBatch(newIoCodeTemps);
ioAddInoutService.dealProcess(ioOrderEntity);
return true;
}
@Override
public boolean refreshOrder(RefreshOrderRequest refreshOrderRequest) {
String billNo = refreshOrderRequest.getBillNo();
@ -500,7 +572,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
exmsg.deleteCharAt(exmsg.length() - 1);
exmsg.insert(0, "以下UDI码未匹配成功");
thrInvOrder.setExMsg(String.valueOf(exmsg));
}else {
} else {
thrInvOrder.setExMsg("");
}
@ -553,6 +625,32 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
return true;
}
/**
*
* @param thrInvOrderDetails
* @param newIoCodeTemps
* @param newBillNo
* @return
*/
private boolean copyIoCodeTemps(List<ThrInvOrderDetail> thrInvOrderDetails, List<IoCodeTempEntity> newIoCodeTemps, String newBillNo,GenerateOrderRequest generateOrderRequest) {
thrInvOrderDetails.forEach( item -> {
IoCodeTempEntity ioCodeTempEntity = new IoCodeTempEntity();
ioCodeTempEntity.setId(null);
ioCodeTempEntity.setCode(item.getUdiCode());
ioCodeTempEntity.setOrderId(newBillNo);
ioCodeTempEntity.setAction(generateOrderRequest.getAction());
BeanUtils.copyProperties(item,ioCodeTempEntity);
ioCodeTempEntity.setUpdateTime(new Date());
ioCodeTempEntity.setCreateTime(new Date());
newIoCodeTemps.add(ioCodeTempEntity);
});
return true;
}
/**
*
*

@ -33,13 +33,15 @@
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="udiCode" jdbcType="VARCHAR" property="udiCode" />
<result column="serialNo" jdbcType="VARCHAR" property="serialNo" />
<result column="sickerCode" jdbcType="VARCHAR" property="sickerCode" />
<result column="sickerName" jdbcType="VARCHAR" property="sickerName" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, orderIdFk, cpmctymc, relId, thrCode, nameCode, ggxh, batchNo, measname, price,
productionDate, expireDate, ylqxzcrbarmc, zczbhhzbapzbh, inCount, outCount, supName,
deptName, deptCode, invName, invCode, spaceCode, spaceName, reCount, mainAction,
manufacturer, remark,udiCode,serialNo
manufacturer, remark,udiCode,serialNo,sickerCode,sickerName
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!--@mbg.generated-->
@ -63,7 +65,7 @@
supName, deptName, deptCode,
invName, invCode, spaceCode,
spaceName, reCount, mainAction,
manufacturer, remark,udiCode,serialNo)
manufacturer, remark,udiCode,serialNo,sickerCode,sickerName)
values (#{orderIdFk,jdbcType=VARCHAR}, #{cpmctymc,jdbcType=VARCHAR}, #{relId,jdbcType=INTEGER},
#{thrCode,jdbcType=VARCHAR}, #{nameCode,jdbcType=VARCHAR}, #{ggxh,jdbcType=VARCHAR},
#{batchNo,jdbcType=VARCHAR}, #{measname,jdbcType=VARCHAR}, #{price,jdbcType=DECIMAL},
@ -72,7 +74,8 @@
#{supName,jdbcType=VARCHAR}, #{deptName,jdbcType=VARCHAR}, #{deptCode,jdbcType=VARCHAR},
#{invName,jdbcType=VARCHAR}, #{invCode,jdbcType=VARCHAR}, #{spaceCode,jdbcType=VARCHAR},
#{spaceName,jdbcType=VARCHAR}, #{reCount,jdbcType=VARCHAR}, #{mainAction,jdbcType=VARCHAR},
#{manufacturer,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{udiCode,jdbcType=VARCHAR}, #{serialNo,jdbcType=VARCHAR})
#{manufacturer,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{udiCode,jdbcType=VARCHAR}, #{serialNo,jdbcType=VARCHAR}
, #{sickerCode,jdbcType=VARCHAR}, #{sickerName,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.glxp.api.entity.thrsys.ThrInvOrderDetail" useGeneratedKeys="true">
<!--@mbg.generated-->
@ -162,6 +165,12 @@
<if test="serialNo != null">
serialNo,
</if>
<if test="sickerCode != null">
sickerCode,
</if>
<if test="sickerName != null">
sickerName,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderIdFk != null">
@ -248,6 +257,12 @@
<if test="serialNo != null">
#{serialNo,jdbcType=VARCHAR},
</if>
<if test="sickerCode != null">
#{sickerCode,jdbcType=VARCHAR},
</if>
<if test="sickerName != null">
#{sickerName,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.glxp.api.entity.thrsys.ThrInvOrderDetail">
@ -338,6 +353,12 @@
<if test="serialNo != null">
serialNo = #{serialNo,jdbcType=VARCHAR},
</if>
<if test="sickerCode != null">
sickerCode = #{sickerCode,jdbcType=VARCHAR},
</if>
<if test="sickerName != null">
sickerName = #{sickerName,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
@ -371,7 +392,9 @@
manufacturer = #{manufacturer,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
udiCode = #{udiCode,jdbcType=VARCHAR},
serialNo = #{serialNo,jdbcType=VARCHAR}
serialNo = #{serialNo,jdbcType=VARCHAR},
sickerCode = #{sickerCode,jdbcType=VARCHAR},
sickerName = #{sickerName,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>

@ -590,7 +590,9 @@ INSERT ignore INTO auth_menu(`menu_id`, `menu_name`, `parent_id`, `order_num`, `
VALUES (2089, '高耗出入库明细', 2086, 1, 'thirdSys/invOrder/thrInvGhOrder', 'thirdSys/invOrder/thrInvGhOrder', NULL, 1, 0, 'C', '0', '0', 'thirdSys:invOrder:thrInvGhOrder', NULL, '超级用户', '2024-02-28 11:51:21', NULL, NULL, NULL);
CALL Pro_Temp_ColumnWork('thr_inv_order', 'sourceType', ' int(0) NULL DEFAULT NULL COMMENT ''来源类型1收费2普耗3高耗'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order', 'exMsg', ' varchar(510) NULL DEFAULT NULL COMMENT ''单据异常信息'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order', 'exMsg', ' text NULL DEFAULT NULL COMMENT ''单据异常信息'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order', 'skProject',' int(0) NULL DEFAULT NULL COMMENT ''是否组套'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order_detail', 'udiCode',' varchar(255) NULL DEFAULT NULL COMMENT ''udiCode'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order_detail', 'serialNo',' varchar(255) NULL DEFAULT NULL COMMENT ''序列号'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order_detail', 'sickerCode',' varchar(80) NULL DEFAULT NULL COMMENT ''患者编码'' AFTER `remark`', 1);
CALL Pro_Temp_ColumnWork('thr_inv_order_detail', 'sickerName',' varchar(30) NULL DEFAULT NULL COMMENT ''患者名称'' AFTER `remark`', 1);

Loading…
Cancel
Save