From f2968bf2757bf5176346b8b6a61050bdaf42fdce Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 18 May 2023 17:28:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=A4=8D=E5=88=B6=EF=BC=8C?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=B5=81=E8=BD=AC=E5=B8=A6=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=8D=95=E4=BF=A1=E6=81=AF=EF=BC=8C=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=96=B0=E5=A2=9E=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoOrderController.java | 24 +- .../entity/purchase/PurOrderDetailEntity.java | 7 +- .../glxp/api/res/inout/IoOrderResponse.java | 6 +- .../service/inout/IoChangeInoutService.java | 10 +- .../service/inout/IoCheckInoutService.java | 5 +- .../com/glxp/api/util/GennerOrderUtils.java | 1 - .../mapper/purchase/PurOrderDetailDao.xml | 343 +++++++++--------- src/main/resources/schemas/schema_v2.1.sql | 2 + 8 files changed, 220 insertions(+), 178 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index e51adc96d..af7f52692 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -2,6 +2,7 @@ package com.glxp.api.controller.inout; 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.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; @@ -702,14 +703,27 @@ public class IoOrderController extends BaseController { newOrder.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//设置单据未草稿状态 newOrder.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); //设置验收状态为未验收 newOrder.setFromType(ConstantStatus.FROM_COPY); + newOrder.setOrderType(2); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderChangeRequest.getAction()); - String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); String supplementOrderNo = orderNo; newOrder.setBillNo(supplementOrderNo); newOrder.setReplicateNo(null); //新单据的复制单号置空 originOrder.setReplicateNo(orderNo); List supplementCodes = new ArrayList<>(); + + // 生成业务单 + List orderDetailBizEntities = orderDetailBizService.findByOrderId(originOrder.getBillNo()); + if (CollUtil.isNotEmpty(orderDetailBizEntities)) { + for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { + orderDetailBizEntity.setOrderIdFk(newOrder.getBillNo()); + orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId()); + orderDetailBizService.insert(orderDetailBizEntity); + } + } + + List products = addOrderChangeRequest.getProducts(); originCodes.forEach( code -> { @@ -720,7 +734,6 @@ public class IoOrderController extends BaseController { || (StrUtil.isBlank(product.getBatchNo()) && StrUtil.isBlank(code.getBatchNo()))) { IoCodeTempEntity supplementCode = new IoCodeTempEntity(); BeanUtil.copyProperties(code, supplementCode); - supplementCode.setCode(product.getCode()); supplementCode.setInvCode(newOrder.getInvCode()); supplementCode.setDeptCode(newOrder.getDeptCode()); supplementCode.setOrderId(newOrder.getBillNo()); @@ -742,6 +755,13 @@ public class IoOrderController extends BaseController { orderService.insertOrder(newOrder); codeTempService.insertBatch(supplementCodes); orderService.update(originOrder); + + ioAddInoutService.dealProcess(newOrder); + //不需要手动校验,则走正常单据校验处理流程 + if (!ioCheckInoutService.checkManual(newOrder.getBillNo())) { + ioCheckInoutService.check(newOrder.getBillNo()); + } + return ResultVOUtils.success(); } diff --git a/src/main/java/com/glxp/api/entity/purchase/PurOrderDetailEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurOrderDetailEntity.java index 5879df14c..1628f411c 100644 --- a/src/main/java/com/glxp/api/entity/purchase/PurOrderDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/purchase/PurOrderDetailEntity.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.math.BigDecimal; + @Data @TableName(value = "pur_order_detail") public class PurOrderDetailEntity { @@ -42,6 +44,9 @@ public class PurOrderDetailEntity { @TableField(value = "supId") private String supId; + @TableField(value = "price") + private BigDecimal price; + /** * 注册证备案证号 */ @@ -61,4 +66,4 @@ public class PurOrderDetailEntity { public static final String COL_SUPID = "supId"; public static final String COL_ZCZBHHZBAPZBH = "zczbhhzbapzbh"; -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java index c8055b82d..6e4a8f78d 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java @@ -242,11 +242,11 @@ public class IoOrderResponse { public String getFromName() { - - if (StrUtil.isNotEmpty(fromCorpName)) - return fromCorpName; if (StrUtil.isNotEmpty(fromInvName)) return fromInvName; + if (StrUtil.isNotEmpty(fromCorpName)) + return fromCorpName; + return fromName; } } diff --git a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java index 4edc166ab..5f110535a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java @@ -259,8 +259,14 @@ public class IoChangeInoutService { codeTempService.insertBatch(codeTempEntities); // 生成业务单 - - + List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(orderDetailBizEntities)) { + for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { + orderDetailBizEntity.setOrderIdFk(outOrder.getBillNo()); + orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId()); + orderDetailBizService.insert(orderDetailBizEntity); + } + } if (isGenInovice) { //生成发票信息 diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 807aa1c76..c585e333f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -283,7 +283,10 @@ public class IoCheckInoutService { return; } if (orderEntity.getFromType() != ConstantStatus.FROM_UDISP) { - orderDetailBizService.deleteByOrderId(orderEntity.getBillNo()); + if (orderEntity.getFromType() != ConstantStatus.FROM_COPY + && orderEntity.getFromType() != ConstantStatus.FROM_CHANGE) { + orderDetailBizService.deleteByOrderId(orderEntity.getBillNo()); + } orderDetailResultService.deleteByOrderId(orderEntity.getBillNo()); if (!orderDetailBizService.isExit(orderEntity.getBillNo())) { orderDetailCodeEntities.forEach(orderDetailCodeEntity -> diff --git a/src/main/java/com/glxp/api/util/GennerOrderUtils.java b/src/main/java/com/glxp/api/util/GennerOrderUtils.java index b2f884b1c..72bea5e55 100644 --- a/src/main/java/com/glxp/api/util/GennerOrderUtils.java +++ b/src/main/java/com/glxp/api/util/GennerOrderUtils.java @@ -175,7 +175,6 @@ public class GennerOrderUtils { return completionRandom(serialWithPrefix, orderNoTypeEnum); } - private Long getSecondsNextEarlyMorning() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, 1); diff --git a/src/main/resources/mybatis/mapper/purchase/PurOrderDetailDao.xml b/src/main/resources/mybatis/mapper/purchase/PurOrderDetailDao.xml index fcab2bda2..788d7a339 100644 --- a/src/main/resources/mybatis/mapper/purchase/PurOrderDetailDao.xml +++ b/src/main/resources/mybatis/mapper/purchase/PurOrderDetailDao.xml @@ -1,177 +1,184 @@ - - - - - - - - - - - - - - id, orderIdFk, productId, productName, `count`, supId, zczbhhzbapzbh - - - - - - - - - - - - DELETE FROM pur_order_detail WHERE id in - - #{item} - - - - - - - - DELETE - FROM pur_order_detail - WHERE orderIdFk = #{orderIdFk} - - - - UPDATE pur_order_detail - - orderIdFk=#{orderIdFk}, - productId=#{productId}, - productName=#{productName}, - `count`=#{count}, - supId=#{supId}, - zczbhhzbapzbh=#{zczbhhzbapzbh}, - - WHERE id = #{id} - - + + + + + + + + + + + + + + id, orderIdFk, productId, productName, `count`, supId, zczbhhzbapzbh + + + + - - REPLACE INTO pur_order_detail - ( orderIdFk,productId,productName,count,supId,zczbhhzbapzbh) values + - - ( - #{item.orderIdFk}, - #{item.productId}, - #{item.productName}, - #{item.count}, - #{item.supId}, - #{item.zczbhhzbapzbh} - ) - - - + + DELETE + FROM pur_order_detail WHERE id in + + #{item} + + + + + + DELETE + FROM pur_order_detail + WHERE orderIdFk = #{orderIdFk} + + + + UPDATE pur_order_detail + + + orderIdFk=#{orderIdFk}, + + + productId=#{productId}, + + + productName=#{productName}, + + + `count`=#{count}, + + + supId=#{supId}, + + + zczbhhzbapzbh=#{zczbhhzbapzbh}, + + + price=#{price}, + + + WHERE id = #{id} + + + + + REPLACE INTO pur_order_detail + (orderIdFk, productId, productName, count, supId, zczbhhzbapzbh, price) values + + + (#{item.orderIdFk}, + #{item.productId}, + #{item.productName}, + #{item.count}, + #{item.supId}, + #{item.zczbhhzbapzbh}, #{item.price}) + + + + - + SELECT pur_order_detail.*, + pur_order.billNo, + basic_products.ggxh spec, + basic_products.measname, + basic_products.manufactory, + basic_products.ylqxzcrbarmc, + basic_corp.`name` supName + FROM pur_order_detail + INNER JOIN basic_udirel ON pur_order_detail.productId = basic_udirel.id + INNER JOIN basic_products ON basic_udirel.uuid = basic_products.uuid + INNER JOIN basic_corp ON pur_order_detail.supId = basic_corp.erpId + left join pur_order on pur_order.id = pur_order_detail.orderIdFk + + + AND pur_order.billNo like concat('%', #{billNo}, '%') + + + AND productId like concat('%', #{productId}, '%') + + + AND productName like concat('%', #{productName}, '%') + + + AND basic_products.ggxh like concat('%', #{spec}, '%') + + + AND pur_order_detail.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%') + + + AND basic_products.manufactory like concat('%', #{manufactory}, '%') + + + = #{startDate} + ]]> + + + + + and pur_order.status = 3 + diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index a08100bc1..21ccb9c45 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -435,3 +435,5 @@ CALL Pro_Temp_ColumnWork('io_code_temp', 'preInSpaceCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('io_code', 'preSpaceCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('io_code', 'preInSpaceCode', 'varchar(255)', 1); + +CALL Pro_Temp_ColumnWork('pur_order_detail', 'price', 'decimal(10, 2)', 1);