From 671131105a38bff60adf589a31a9184119cd377d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Thu, 24 Aug 2023 10:20:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=A2=86=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/inv/DeviceReceiveOrderEntity.java | 2 +- .../inv/FilterDeviceReceiveOrderRequest.java | 13 +++++ .../inv/FilterInvProductDetailRequest.java | 2 + .../api/req/inv/FilterInvProductRequest.java | 6 ++ .../api/res/basic/UdiRelevanceResponse.java | 1 + .../glxp/api/res/inv/InvProductResponse.java | 8 ++- .../DeviceReceiveOrderDetailServiceImpl.java | 58 ++----------------- .../mybatis/mapper/basic/UdiRelevanceDao.xml | 15 +++-- .../mapper/inv/DeviceReceiveOrderDao.xml | 12 +++- .../inv/DeviceReceiveOrderDetailDao.xml | 1 + .../mybatis/mapper/inv/invProductDao.xml | 45 +++++++++----- 11 files changed, 86 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/inv/DeviceReceiveOrderEntity.java b/src/main/java/com/glxp/api/entity/inv/DeviceReceiveOrderEntity.java index e3182f228..68e402ee6 100644 --- a/src/main/java/com/glxp/api/entity/inv/DeviceReceiveOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/DeviceReceiveOrderEntity.java @@ -15,7 +15,7 @@ public class DeviceReceiveOrderEntity { /** * id */ - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Integer id; /** diff --git a/src/main/java/com/glxp/api/req/inv/FilterDeviceReceiveOrderRequest.java b/src/main/java/com/glxp/api/req/inv/FilterDeviceReceiveOrderRequest.java index faddd29f0..908da82a6 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterDeviceReceiveOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterDeviceReceiveOrderRequest.java @@ -42,4 +42,17 @@ public class FilterDeviceReceiveOrderRequest extends ListPageRequest { private String templateId; + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + + private String receiveUserName; + + } diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvProductDetailRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvProductDetailRequest.java index c9cda9afd..92ae8c4e6 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvProductDetailRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvProductDetailRequest.java @@ -11,6 +11,8 @@ import java.util.List; @Data public class FilterInvProductDetailRequest extends ListPageRequest { + private int id; + /** * UDI码 */ diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java index d6c682dfe..846258118 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java @@ -108,4 +108,10 @@ public class FilterInvProductRequest extends ListPageRequest { */ private Integer filterCount; + private String code; + + private String serialNo; + + private String manufactory; + } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index b430c4e94..c8072e51c 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -106,6 +106,7 @@ public class UdiRelevanceResponse { private String unitFk; //供应商ID private String companyName; //供应商名称 + //手持终端下载需要主键 private Long relId; private boolean dispatch; //是否可配送 diff --git a/src/main/java/com/glxp/api/res/inv/InvProductResponse.java b/src/main/java/com/glxp/api/res/inv/InvProductResponse.java index 96e180724..ac9dee934 100644 --- a/src/main/java/com/glxp/api/res/inv/InvProductResponse.java +++ b/src/main/java/com/glxp/api/res/inv/InvProductResponse.java @@ -38,7 +38,7 @@ public class InvProductResponse { /** * 生产日期 */ - private String productionDate; + private String produceDate; /** * 过期时间 @@ -113,6 +113,12 @@ public class InvProductResponse { private String code; + private String serialNo; + + private String manufactoryl; + + + /* * 计量单位 diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderDetailServiceImpl.java index bbaecd0e4..61de81435 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderDetailServiceImpl.java @@ -110,61 +110,11 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe //通过选库存添加 //查询选中的库存信息 for (String invProductId : addDetailRequest.getInvProductIds()) { - InvProductEntity invProductEntity = invProductDao.selectById(invProductId); //查询库存详情 - FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); - filterInvProductDetailRequest.setRelId(String.valueOf(invProductEntity.getRelIdFk())); - filterInvProductDetailRequest.setBatchNo(invProductEntity.getBatchNo()); - filterInvProductDetailRequest.setDeptCode(invProductEntity.getDeptCode()); - filterInvProductDetailRequest.setInvCode(invProductEntity.getInvCode()); - filterInvProductDetailRequest.setInvSpaceCode(addDetailRequest.getInvSpaceCode()); - filterInvProductDetailRequest.setSupId(addDetailRequest.getSupId()); - List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(filterInvProductDetailRequest); - //计算出在仓库中的设备 - //提取库存详情中不同的码 - List<String> codesList = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).distinct().collect(Collectors.toList()); - //初始化所有码数量集合 - Map<String, Integer> codeMap = new HashMap<>(codesList.size()); - codesList.forEach(code -> codeMap.put(code, 0)); - //计算库存详情中的码明细,得出所有存在于库存中的码 - for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { - Integer count = codeMap.get(invProductDetailEntity.getCode()); - if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { - //入库,数量 +1 - count = count + 1; - } else { - //出库, 数量 -1 - count = count - 1; - } - codeMap.put(invProductDetailEntity.getCode(), count); - } - - //根据计算得出的,所有存在于库存中的码明细,生成设备领用记录详情 - for (String code : codeMap.keySet()) { - if (codeMap.get(code) > 0) { - //查找此条码对应的库存详情数据,根据此库存详情数据,查找仓库货位等信息 - InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity(); - for (InvProductDetailEntity detailEntity : invProductDetailEntities) { - if (detailEntity.getCode().equals(code)) { - invProductDetailEntity = detailEntity; - break; - } - } - - //此条码存在于库存中,解析条码生成设备领用记录详情 - Integer count = codeMap.get(code); - if (count > 1) { - for (int i = 0; i < count; i++) { - DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), code, invProductDetailEntity); - //插入设备领用记录详情 - deviceReceiveOrderDetailDao.insert(orderDetail); - } - } else { - DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), code, invProductDetailEntity); - deviceReceiveOrderDetailDao.insert(orderDetail); - } - } - } + InvProductDetailEntity invProductDetailEntities = invProductDetailDao.selectById(Integer.valueOf(invProductId)); + DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), invProductDetailEntities.getCode(), invProductDetailEntities); + //插入设备领用记录详情 + deviceReceiveOrderDetailDao.insert(orderDetail); } }else{ for (String invProductId : addDetailRequest.getInvProductIds()) { diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index bae8b373e..8b468f761 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -57,16 +57,21 @@ basic_products.basicPrductRemak5, basic_products.basicPrductRemak6, basic_products.basicPrductRemak7, - basic_products.basicPrductRemak8 + basic_products.basicPrductRemak8, + basic_corp.name as companyName FROM basic_udirel - inner JOIN basic_products - ON basic_products.uuid = basic_udirel.uuid + inner JOIN basic_products ON basic_products.uuid = basic_udirel.uuid + 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 test="manufactory != '' and manufactory != null"> + AND basic_products.manufactory LIKE concat('%', #{manufactory}, '%') + </if> + <if test="companyName != '' and companyName != null"> + AND basic_corp.name LIKE concat('%', #{companyName}, '%') </if> <if test="cpmctymc != '' and cpmctymc != null"> AND cpmctymc LIKE concat('%', #{cpmctymc}, '%') diff --git a/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDao.xml b/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDao.xml index 5bdc1811b..7c0c0ac6f 100644 --- a/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDao.xml @@ -13,15 +13,15 @@ dro.STATUS, dro.fromInvSpaceCode, dro.receiveUser, - ( SELECT employeeName FROM auth_user WHERE id = dro.receiveUser ) receiveUserName, + au.employeeName as receiveUserName, ( SELECT `name` FROM auth_dept WHERE CODE = dro.fromDeptCode ) fromDeptName, ( SELECT `code` FROM auth_dept WHERE CODE = dro.fromDeptCode ) fromDeptCode, ( SELECT `name` FROM auth_warehouse WHERE CODE = dro.fromInvCode ) fromInvName, ( SELECT `code` FROM auth_warehouse WHERE CODE = dro.fromInvCode ) fromInvCode, - ( SELECT `name` FROM auth_space WHERE CODE = dro.fromInvSpaceCode ) fromInvSpaceName, - ( SELECT employeeName FROM auth_user WHERE userName = dro.createUser ) createUserName + ( SELECT `name` FROM auth_space WHERE CODE = dro.fromInvSpaceCode ) fromInvSpaceName FROM device_receive_order dro + left join auth_user au on au.id = dro.receiveUser <where> <if test="status != null"> AND status = #{status} @@ -38,6 +38,12 @@ <if test="fromInvSpaceCode != null and fromInvSpaceCode != ''"> AND fromInvSpaceCode = #{fromInvSpaceCode} </if> + <if test="receiveUserName != null and receiveUserName != ''"> + AND au.employeeName like concat('%', #{receiveUserName}, '%') + </if> + <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> + AND date_format(dro.createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') + </if> </where> order by updateTime desc </select> diff --git a/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDetailDao.xml b/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDetailDao.xml index 7f83cad20..9ffbdb1db 100644 --- a/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDetailDao.xml +++ b/src/main/resources/mybatis/mapper/inv/DeviceReceiveOrderDetailDao.xml @@ -74,6 +74,7 @@ AND drod.originCode = #{code} </if> </where> + group by bu.uuid </select> <select id="selectList" resultType="com.glxp.api.entity.inv.DeviceReceiveOrderDetailEntity"> diff --git a/src/main/resources/mybatis/mapper/inv/invProductDao.xml b/src/main/resources/mybatis/mapper/inv/invProductDao.xml index f8a0071a7..16eee5c9d 100644 --- a/src/main/resources/mybatis/mapper/inv/invProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/invProductDao.xml @@ -148,16 +148,25 @@ </select> <select id="getMAInvProducts" resultType="com.glxp.api.res.inv.InvProductResponse"> - select ip.id, bp.nameCode, bp.cpmctymc, bp.ggxh, ip.batchNo, ip.productionDate, ip.expireDate,basic_corp.name supName - from inv_product ip - left join inv_product_detail ipd - on ip.relIdFk = ipd.relId and - ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') - left join basic_udirel bu on bu.id = ip.relIdFk - left join basic_products bp on bu.uuid = bp.uuid - left join basic_corp on ip.supId = basic_corp.erpId + SELECT + ip.id, + bp.nameCode, + bp.cpmctymc, + bp.ggxh, + ip.batchNo, + ip.code, + ip.produceDate, + ip.expireDate, + ip.serialNo, + basic_corp.NAME supName, + bp.manufactory , + bp.zczbhhzbapzbh + FROM + inv_product_detail ip + LEFT JOIN basic_udirel bu ON bu.id = ip.relId + LEFT JOIN basic_products bp ON bu.uuid = bp.uuid + LEFT JOIN basic_corp ON ip.supId = basic_corp.erpId <where> - (ip.inCount - ip.outCount) > 0 <if test="nameCode != null and nameCode != ''"> AND bp.nameCode like concat('%', #{nameCode}, '%') </if> @@ -170,14 +179,24 @@ <if test="invCode != null and invCode != ''"> AND ip.invCode = #{invCode} </if> - <if test="invSpaceCode != null and invSpaceCode != ''"> - AND ipd.invSpaceCode = #{invSpaceCode} - </if> <if test="cplb != null and cplb != ''"> AND bp.cplb = #{cplb} </if> + <if test="manufactory != null and manufactory != ''"> + AND bp.manufactory = #{manufactory} + </if> + <if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''"> + AND bp.zczbhhzbapzbh = #{zczbhhzbapzbh} + </if> + <if test="supName != null and supName != ''"> + AND basic_corp.NAME like concat('%', #{supName}, '%') + </if> + <if test="invCode != null and invCode != ''"> + AND ip.invCode = #{invCode} + </if> </where> - group by ip.id + GROUP BY ip.`code`, ip.supId + ORDER BY ip.`code` </select> <select id="selectProductInfo" resultType="com.glxp.api.entity.inv.InvProductEntity">