1.优化单据扫码接口性能

master
x_z 2 years ago
parent 2ca3366c5e
commit 569707b339

@ -29,7 +29,6 @@ import com.glxp.api.req.inout.FilterCodeRequest;
import com.glxp.api.req.inout.PostOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.basic.UdiRlSupResponse;
import com.glxp.api.res.inout.AddCodeResult;
import com.glxp.api.res.inout.IoCodeTempResponse;
import com.glxp.api.service.auth.InvWarehouseService;
@ -372,7 +371,7 @@ public class IoCodeTempController extends BaseController {
//批次号校验
//判断此产品是否开启允许无批次号
UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi());
UdiProductEntity udiInfoEntity = udiProductService.getAllowNoBatch(udiEntity.getUdi());
if (udiInfoEntity == null) {
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
}
@ -733,13 +732,13 @@ public class IoCodeTempController extends BaseController {
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
companyProductRelevanceRequest.setUnitFk(unitFk);
List<UdiRlSupResponse> datas = udiRlSupService.filterUdiGp(companyProductRelevanceRequest);
if (datas.size() <= 0) {
boolean exist = udiRlSupService.findExist(companyProductRelevanceRequest);
if (!exist) {
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
}
} else {
List<UdiRlSupResponse> datas = udiRlSupService.filterUdiGp(companyProductRelevanceRequest);
if (datas.size() <= 0) {
boolean exist = udiRlSupService.findExist(companyProductRelevanceRequest);
if (!exist) {
return ResultVOUtils.error(500, "此产品无指定供应商,请检查后添加!");
}
}

@ -87,7 +87,7 @@ public interface InvWarehouseDao extends BaseMapperPlus<InvWarehouseDao, InvWare
*/
List<InvWarehouseEntity> selectInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest);
List<InvWarehouseEntity> selectInvById( @Param("InvList") List<String> InvList);
List<InvWarehouseEntity> selectInvById(@Param("InvList") List<String> InvList);
/**
*
@ -97,4 +97,12 @@ public interface InvWarehouseDao extends BaseMapperPlus<InvWarehouseDao, InvWare
*/
String selectParentIdByCode(@Param("invCode") String invCode);
/**
*
*
* @param filterInvSubWarehouseRequest
* @return
*/
InvWarehouseEntity filterInvSubWarehouseLimitOne(FilterInvSubWarehouseRequest filterInvSubWarehouseRequest);
}

@ -76,4 +76,12 @@ public interface UdiProductDao {
List<String> selectGgxhList(@Param("relId") String relId);
boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest);
/**
* DI
*
* @param nameCode
* @return
*/
UdiProductEntity selectAllowNoBatch(@Param("nameCode") String nameCode);
}

@ -111,4 +111,12 @@ public interface UdiRelevanceDao extends BaseMapperPlus<UdiRelevanceDao, UdiRele
* @return
*/
String selectRelIdByNameCode(@Param("nameCode") String nameCode);
/**
*
*
* @param filterUdiRelRequest
* @return
*/
UdiRelevanceResponse selectOneUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest);
}

@ -43,4 +43,12 @@ public interface UdiRlSupDao extends BaseMapperPlus<UdiRlSupDao, UdiRlSupEntity,
* @return
*/
List<String> selectUnitFkByRelId(@Param("relId") Long relId);
/**
*
*
* @param companyProductRelevanceRequest
* @return
*/
Long selectSupRlCount(CompanyProductRelevanceRequest companyProductRelevanceRequest);
}

@ -16,4 +16,11 @@ public interface IoOrderDetailCodeDao extends BaseMapperPlus<IoOrderDetailCodeDa
* @return
*/
List<IoOrderDetailCodeResponse> filterList(FilterOrderDetailCodeRequest detailCodeRequest);
/**
*
*
* @param orderDetailCodeEntity
*/
void updateCount(IoOrderDetailCodeEntity orderDetailCodeEntity);
}

@ -99,11 +99,8 @@ public class InvWarehouseServiceImpl implements InvWarehouseService {
return null;
FilterInvSubWarehouseRequest filterInvSubWarehouseRequest = new FilterInvSubWarehouseRequest();
filterInvSubWarehouseRequest.setCode(code);
List<InvWarehouseEntity> invSubWarehouseEntities = invWarehouseDao.filterInvSubWarehouse(filterInvSubWarehouseRequest);
if (CollUtil.isNotEmpty(invSubWarehouseEntities)) {
return invSubWarehouseEntities.get(0);
}
return null;
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.filterInvSubWarehouseLimitOne(filterInvSubWarehouseRequest);
return invWarehouseEntity;
}
@Override

@ -53,4 +53,11 @@ public interface UdiProductService {
boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest);
/**
* DI
*
* @param nameCode
* @return
*/
UdiProductEntity getAllowNoBatch(String nameCode);
}

@ -37,4 +37,12 @@ public interface UdiRlSupService {
boolean deleteById(String id);
boolean deleteByRlId(String id);
/**
*
*
* @param companyProductRelevanceRequest
* @return
*/
boolean findExist(CompanyProductRelevanceRequest companyProductRelevanceRequest);
}

@ -145,4 +145,10 @@ public class UdiProductServiceImpl implements UdiProductService {
return false;
return udiProductDao.updateUdiInfoNotAll(udiInfoRequest);
}
@Override
public UdiProductEntity getAllowNoBatch(String nameCode) {
String di = FilterUdiUtils.getDiStr(nameCode);
return udiProductDao.selectAllowNoBatch(di);
}
}

@ -211,10 +211,7 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(id);
filterUdiRelRequest.setDiType(1);
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiJoinSup(filterUdiRelRequest);
if (data != null && data.size() > 0)
return data.get(0);
return null;
return udiRelevanceDao.selectOneUdiJoinSup(filterUdiRelRequest);
}

@ -106,9 +106,9 @@ public class UdiRlSupServiceImpl implements UdiRlSupService {
@Override
public int updateCompanyProductRelevanceByUdiFk(UdiRlSupEntity companyCertEntity) {
QueryWrapper<UdiRlSupEntity> ew=new QueryWrapper<>();
ew.eq("udiRlIdFk",companyCertEntity.getUdiRlIdFk());
return udiRlSupDao.update(companyCertEntity,ew);
QueryWrapper<UdiRlSupEntity> ew = new QueryWrapper<>();
ew.eq("udiRlIdFk", companyCertEntity.getUdiRlIdFk());
return udiRlSupDao.update(companyCertEntity, ew);
}
@Override
@ -125,4 +125,10 @@ public class UdiRlSupServiceImpl implements UdiRlSupService {
public boolean deleteByRlId(String id) {
return udiRlSupDao.deleteByRlId(id);
}
@Override
public boolean findExist(CompanyProductRelevanceRequest companyProductRelevanceRequest) {
Long count = udiRlSupDao.selectSupRlCount(companyProductRelevanceRequest);
return null != count && count != 0;
}
}

@ -3,11 +3,14 @@ package com.glxp.api.service.inout;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.inout.IoOrderDetailCodeDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.UdiEntity;
@ -68,6 +71,8 @@ public class IoAddInoutService {
SystemParamConfigService systemParamConfigService;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
private IoOrderDetailCodeDao orderDetailCodeDao;
//新增扫码单据处理
public void dealProcess(IoOrderEntity orderEntity) {
@ -296,7 +301,7 @@ public class IoAddInoutService {
//生成扫码单据详情
public void genOrderDetailCode(IoOrderEntity orderEntity, IoCodeTempEntity codeTempEntity) {
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().select("id", "count", "reCount", "bindRlFk", "batchNo").eq("orderIdFk", orderEntity.getBillNo()));
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId());
// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId());
if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) {
@ -309,7 +314,10 @@ public class IoAddInoutService {
StrUtil.trimToEmpty(orderDetailCodeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(codeTempEntity.getBatchNo()))) {
orderDetailCodeEntity.setCount(orderDetailCodeEntity.getCount() + codeTempEntity.getMyCount());
orderDetailCodeEntity.setReCount(orderDetailCodeEntity.getReCount() + codeTempEntity.getMyReCount());
orderDetailCodeService.update(orderDetailCodeEntity);
UpdateWrapper<IoOrderDetailCodeEntity> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("count", orderDetailCodeEntity.getCount()).set("reCount", orderDetailCodeEntity.getReCount());
orderDetailCodeDao.updateCount(orderDetailCodeEntity);
isUpdate = true;
break;
}

@ -395,4 +395,30 @@
</if>
</where>
</select>
<select id="filterInvSubWarehouseLimitOne" resultType="com.glxp.api.entity.auth.InvWarehouseEntity">
select *
FROM auth_warehouse a
<where>
<if test="id != '' and id != null">
AND a.id = #{id}
</if>
<if test="code != '' and code != null">
AND a.code = #{code}
</if>
<if test="name != '' and name != null">
AND a.name like concat('%', #{name}, '%')
</if>
<if test="advanceType != null">
AND a.advanceType = #{advanceType}
</if>
<if test="parentId != '' and parentId != null">
AND a.parentId = #{parentId}
</if>
<if test="defaultInv != '' and defaultInv != null">
AND a.defaultInv = #{defaultInv}
</if>
</where>
limit 1
</select>
</mapper>

@ -953,4 +953,8 @@
</trim>
WHERE uuid = #{uuid}
</update>
<select id="selectAllowNoBatch" resultType="com.glxp.api.entity.basic.UdiProductEntity">
select id, allowNoBatch from basic_products where nameCode = #{nameCode} limit 1
</select>
</mapper>

@ -1122,4 +1122,132 @@
inner join basic_products on basic_udirel.uuid = basic_products.uuid
where basic_products.nameCode = #{nameCode}
</select>
<select id="selectOneUdiJoinSup" resultType="com.glxp.api.res.basic.UdiRelevanceResponse">
select basic_udirel.*,
basic_products.originUuid,
basic_products.nameCode,
basic_products.deviceRecordKey,
basic_products.packRatio,
basic_products.packUnit,
basic_products.packLevel,
basic_products.bhxjsl,
basic_products.bhzxxsbzsl,
basic_products.zxxsbzbhsydysl,
basic_products.bhxjcpbm,
basic_products.bzcj,
basic_products.cpmctymc,
basic_products.cplb,
basic_products.flbm,
basic_products.ggxh,
basic_products.qxlb,
basic_products.tyshxydm,
basic_products.ylqxzcrbarmc,
basic_products.zczbhhzbapzbh,
basic_products.ylqxzcrbarywmc,
basic_products.sydycpbs,
basic_products.sjcpbm,
basic_products.versionNumber,
basic_products.diType,
basic_products.ybbm,
basic_products.sptm,
basic_products.manufactory,
basic_products.measname,
basic_products.productType,
basic_products.scbssfbhph,
basic_products.scbssfbhxlh,
basic_products.scbssfbhscrq,
basic_products.scbssfbhsxrq,
basic_products.cpms,
basic_products.allowNoBatch,
basic_products.allowNoExpire,
basic_products.allowNoProduct,
basic_products.allowNoSerial,
basic_products.spmc,
basic_products.cplx,
basic_products.hchzsb,
basic_products.cpdls,
company_product_relevance.price,
basic_products.basicPrductRemak1,
basic_products.basicPrductRemak2,
basic_products.basicPrductRemak3,
basic_products.basicPrductRemak4,
basic_products.basicPrductRemak5,
basic_products.basicPrductRemak6,
basic_products.basicPrductRemak7,
basic_products.basicPrductRemak8,
company_product_relevance.unitFk,
basic_corp.name companyName
FROM basic_udirel
inner JOIN basic_products
ON basic_products.uuid = basic_udirel.uuid
left join company_product_relevance
on basic_udirel.id = company_product_relevance.udiRlIdFk
left JOIN basic_corp on basic_corp.erpId = company_product_relevance.customerId
<where>
<if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null">
AND ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%')
</if>
<if test="supName != '' and supName != null">
AND supName LIKE concat('%', #{supName}, '%')
</if>
<if test="cpmctymc != '' and cpmctymc != null">
AND cpmctymc LIKE concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != '' and nameCode != null">
AND nameCode LIKE concat(#{nameCode}, '%')
</if>
<if test="thirdId != '' and thirdId != null">
AND thirdId LIKE concat(#{thirdId}, '%')
</if>
<if test="uuid != '' and uuid != null">
AND basic_udirel.uuid = #{uuid}
</if>
<if test="unitFk != '' and unitFk != null">
AND company_product_relevance.unitFk = #{unitFk}
</if>
<if test="id != '' and id != null">
AND basic_udirel.id = #{id}
</if>
<if test="udplatCode != '' and udplatCode != null">
AND basic_udirel.udplatCode = #{udplatCode}
</if>
<if test="diType != null">
AND basic_products.diType = #{diType}
</if>
<if test="lockStatus != '' and lockStatus != null">
AND basic_udirel.lockStatus = #{lockStatus}
</if>
<if test="zczbhhzbapzbh != '' and zczbhhzbapzbh != null">
AND zczbhhzbapzbh LIKE concat(#{zczbhhzbapzbh}, '%')
</if>
<if test="lastUpdateTime != null and lastUpdateTime != ''">
<![CDATA[
and DATE_FORMAT(updateTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT(#{lastUpdateTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="mainId != '' and mainId != null">
AND mainId = #{mainId}
</if>
<if test="unionFilterStr != '' and unionFilterStr != null">
or basic_products.cpmctymc LIKE concat('%', #{unionFilterStr}, '%')
or basic_products.ylqxzcrbarmc LIKE concat('%', #{unionFilterStr}, '%')
or basic_products.ggxh LIKE concat('%', #{unionFilterStr}, '%')
or basic_products.zczbhhzbapzbh LIKE concat('%', #{unionFilterStr}, '%')
</if>
<if test="isAdavence != '' and isAdavence != null">
AND isAdavence = #{isAdavence}
</if>
<if test="uniqueNameCode != '' and uniqueNameCode != null">
AND nameCode = #{uniqueNameCode}
</if>
<if test="relIds != null and relIds.size() > 0">
and basic_udirel.id in
<foreach collection="relIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</where>
limit 1
</select>
</mapper>

@ -106,12 +106,12 @@
basic_products.basicPrductRemak8,
basic_corp.name companyName
FROM company_product_relevance
inner JOIN basic_udirel
ON company_product_relevance.udiRlIdFk = basic_udirel.id
inner JOIN basic_products
ON basic_udirel.uuid = basic_products.uuid
left JOIN basic_corp on basic_corp.erpId = company_product_relevance.customerId
left join basic_hosp_type bht on basic_udirel.relCode = bht.code
inner JOIN basic_udirel
ON company_product_relevance.udiRlIdFk = basic_udirel.id
inner JOIN basic_products
ON basic_udirel.uuid = basic_products.uuid
left JOIN basic_corp on basic_corp.erpId = company_product_relevance.customerId
left join basic_hosp_type bht on basic_udirel.relCode = bht.code
<where>
<if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null">
AND ylqxzcrbarmc LIKE concat(#{ylqxzcrbarmc}, '%')
@ -127,19 +127,19 @@
</if>
<if test="unionCode != '' and unionCode != null">
and (
nameCode LIKE concat('%', #{unionCode}, '%')
or basic_products.ybbm LIKE concat('%', #{unionCode}, '%')
or basic_products.sptm LIKE concat('%', #{unionCode}, '%')
)
nameCode LIKE concat('%', #{unionCode}, '%')
or basic_products.ybbm LIKE concat('%', #{unionCode}, '%')
or basic_products.sptm LIKE concat('%', #{unionCode}, '%')
)
</if>
<if test="thrPiId != '' and thrPiId != null">
and (
basic_udirel.thirdId LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId1 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId2 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId3 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId4 LIKE concat('%', #{thrPiId}, '%')
)
basic_udirel.thirdId LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId1 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId2 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId3 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId4 LIKE concat('%', #{thrPiId}, '%')
)
</if>
<if test="uuid != '' and uuid != null">
AND basic_udirel.uuid = #{uuid}
@ -284,9 +284,9 @@
<insert id="insertCompanyProductRelevance"
parameterType="com.glxp.api.entity.basic.UdiRlSupEntity">
replace
INTO company_product_relevance(customerId, productId, enterpriseId, registrationId,
createTime, updateTime, auditStatus, productUuid, udiRlIdFk, unitFk,
price, createUser, updateUser)
INTO company_product_relevance(customerId, productId, enterpriseId, registrationId,
createTime, updateTime, auditStatus, productUuid, udiRlIdFk, unitFk,
price, createUser, updateUser)
values (#{customerId},
#{productId},
#{enterpriseId},
@ -306,9 +306,9 @@
<insert id="importCompanyProductRelevance"
parameterType="com.glxp.api.entity.basic.UdiRlSupEntity">
replace
INTO company_product_relevance(id, customerId, productId, enterpriseId, registrationId,
createTime, updateTime, auditStatus, productUuid, udiRlIdFk, unitFk,
price, createUser, updateUser)
INTO company_product_relevance(id, customerId, productId, enterpriseId, registrationId,
createTime, updateTime, auditStatus, productUuid, udiRlIdFk, unitFk,
price, createUser, updateUser)
values (#{id},
#{customerId},
#{productId},
@ -349,4 +349,20 @@
from company_product_relevance
where udiRlIdFk = #{relId}
</select>
<select id="selectSupRlCount" resultType="java.lang.Long">
select count(*)
FROM company_product_relevance
inner JOIN basic_udirel
ON company_product_relevance.udiRlIdFk = basic_udirel.id
inner JOIN basic_products ON basic_udirel.uuid = basic_products.uuid
<where>
<if test="nameCode != '' and nameCode != null">
AND nameCode LIKE concat(#{nameCode}, '%')
</if>
<if test="unitFk != null and unitFk != ''">
and unitFk = #{unitFk}
</if>
</where>
</select>
</mapper>

@ -30,4 +30,7 @@
group by io_order_detail_code.id
</select>
<update id="updateCount">
update io_order_detail_code set count = #{count}, reCount = #{reCount} where id = #{id}
</update>
</mapper>
Loading…
Cancel
Save