From f338e5388316648c97adc8d80b46d02b08ffd693 Mon Sep 17 00:00:00 2001 From: wenshijun Date: Tue, 25 Nov 2025 16:30:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=85=8D=E5=90=88=E9=85=8D?= =?UTF-8?q?=E9=80=81=E7=B3=BB=E7=BB=9F=E8=BF=9C=E7=A8=8B=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wisdom/controller/RkInfoController.java | 25 +- .../com/zg/project/wisdom/domain/RkInfo.java | 2 +- .../domain/dto/RkDeliveryUpdateDTO.java | 9 + .../wisdom/domain/vo/DeliveryBillVO.java | 32 +++ .../project/wisdom/mapper/RkInfoMapper.java | 19 +- .../wisdom/service/IRkInfoService.java | 23 +- .../service/impl/RkInfoServiceImpl.java | 50 +++- src/main/resources/application-druid.yml | 4 +- src/main/resources/application.yml | 4 +- .../resources/mybatis/wisdom/RkInfoMapper.xml | 257 +++++++++++------- 10 files changed, 299 insertions(+), 126 deletions(-) create mode 100644 src/main/java/com/zg/project/wisdom/domain/dto/RkDeliveryUpdateDTO.java create mode 100644 src/main/java/com/zg/project/wisdom/domain/vo/DeliveryBillVO.java diff --git a/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java b/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java index 3054177..aa18369 100644 --- a/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java +++ b/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletResponse; import com.github.pagehelper.PageHelper; import com.zg.project.wisdom.domain.dto.*; +import com.zg.project.wisdom.domain.vo.DeliveryBillVO; import com.zg.project.wisdom.domain.vo.PcodeQtyVO; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -55,7 +56,7 @@ public class RkInfoController extends BaseController @ApiOperation("按单据分组(bill_no)列表:若存在出库则同时返回 bill_no_ck") - @PreAuthorize("@ss.hasPermi('wisdom:stock:list')") +// @PreAuthorize("@ss.hasPermi('wisdom:stock:list')") @PostMapping("/bill/groups") public TableDataInfo billGroups(@RequestBody RkInfoQueryDTO query) { // 分页 @@ -226,10 +227,12 @@ public class RkInfoController extends BaseController * @param * @return */ - @Log(title = "配送出库单据查询", businessType = BusinessType.OTHER) - @GetMapping("/delivery") - public AjaxResult listAllForDelivery(RkInfo query) { - List list = rkInfoService.selectDeliveryAll(query); + @GetMapping("/delivery/list") + public AjaxResult listDelivery(RkInfo query) { + // 保险起见,这里强制条件(也可以在 service 里写死) + query.setIsChuku("1"); + query.setIsDelivery("1"); + List list = rkInfoService.selectDeliveryBillList(query); return AjaxResult.success(list); } @@ -297,4 +300,16 @@ public class RkInfoController extends BaseController return AjaxResult.success("追加入库成功"); } + + @PostMapping("/updateDeliveryStatus") + public AjaxResult updateDeliveryStatus(@RequestBody RkDeliveryUpdateDTO dto) { + + if (dto.getBillNoCk() == null) { + return AjaxResult.error("出库单据号不能为空"); + } + + int rows = rkInfoService.updateDeliveryStatus(dto.getBillNoCk(), dto.getIsDelivery()); + return AjaxResult.success(rows); + } + } diff --git a/src/main/java/com/zg/project/wisdom/domain/RkInfo.java b/src/main/java/com/zg/project/wisdom/domain/RkInfo.java index 48ca66f..2639e66 100644 --- a/src/main/java/com/zg/project/wisdom/domain/RkInfo.java +++ b/src/main/java/com/zg/project/wisdom/domain/RkInfo.java @@ -101,7 +101,7 @@ public class RkInfo extends BaseEntity private String billNoCk; /** 是否需要配送(0否 1是) */ - @Excel(name = "是否需要配送", readConverterExp = "0=否,1=是") + @Excel(name = "是否需要配送", readConverterExp = "0=否,1=是,2=配送中,3=配送完成") private String isDelivery; /** 县局 */ diff --git a/src/main/java/com/zg/project/wisdom/domain/dto/RkDeliveryUpdateDTO.java b/src/main/java/com/zg/project/wisdom/domain/dto/RkDeliveryUpdateDTO.java new file mode 100644 index 0000000..2cc70c9 --- /dev/null +++ b/src/main/java/com/zg/project/wisdom/domain/dto/RkDeliveryUpdateDTO.java @@ -0,0 +1,9 @@ +package com.zg.project.wisdom.domain.dto; + +import lombok.Data; + +@Data +public class RkDeliveryUpdateDTO { + private String billNoCk; + private Integer isDelivery; // 0否 1是 2配送中 3已完成 +} \ No newline at end of file diff --git a/src/main/java/com/zg/project/wisdom/domain/vo/DeliveryBillVO.java b/src/main/java/com/zg/project/wisdom/domain/vo/DeliveryBillVO.java new file mode 100644 index 0000000..6c95701 --- /dev/null +++ b/src/main/java/com/zg/project/wisdom/domain/vo/DeliveryBillVO.java @@ -0,0 +1,32 @@ +package com.zg.project.wisdom.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.zg.project.wisdom.domain.RkInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 待配送出库单据 VO(1 对多:一个出库单据 + 多条货物明细) + */ +@Data +public class DeliveryBillVO implements Serializable { + + /** 出库单据号(rk_info.bill_no_ck) */ + private String billNoCk; + + /** 领货人(出库理货员) */ + private String ckLihuoY; + + /** 施工队/出库班组 */ + private String teamCode; + + /** 领用时间(出库时间) */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date lyTime; + + /** 该出库单据下的所有货物明细 */ + private List detailList; +} diff --git a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java index 95e981c..68c21c1 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java @@ -222,14 +222,6 @@ public interface RkInfoMapper List listRkInfoByPcode(String pcode); - /** - * 获取需要配送的出库单 - * @param query - * @return - */ - List selectDeliveryAll(RkInfo query); - - /** * 查询 rk_info 全量明细(仅未删除) */ @@ -240,4 +232,15 @@ public interface RkInfoMapper int updateBillInfo(RkInfo query); + /** + * 修改出库单据状态 + */ + + int updateDeliveryStatus(@Param("billNoCk") String billNoCk, + @Param("isDelivery") Integer isDelivery); + + /** + * 查询出库单据 + */ + List selectDeliveryCkList(@Param("q") RkInfo query); } diff --git a/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java b/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java index af4326a..eb78230 100644 --- a/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java +++ b/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java @@ -7,6 +7,7 @@ import com.zg.project.Inventory.domain.dto.QueryDTO; import com.zg.project.Inventory.domain.vo.ChartDataVO; import com.zg.project.wisdom.domain.RkInfo; import com.zg.project.wisdom.domain.dto.*; +import com.zg.project.wisdom.domain.vo.DeliveryBillVO; import com.zg.project.wisdom.domain.vo.PcodeQtyVO; /** @@ -156,13 +157,6 @@ public interface IRkInfoService */ List listRkInfoByPcode(String pcode); - /** - * 获取需要配送的出库列表 - * @param query - * @return - */ - List selectDeliveryAll(RkInfo query); - /** * 分页查询 rk_info 所有明细(仅未删除) */ @@ -179,4 +173,19 @@ public interface IRkInfoService * @param dto */ void appendToExistingBill(PcRkInfoBatchDTO dto); + + /** + * 修改出库单的配送状态 + * @param billNoCk + * @param isDelivery + * @return + */ + int updateDeliveryStatus(String billNoCk, Integer isDelivery); + + /** + * 获取指定出库单的配送信息 + * @param + * @return + */ + List selectDeliveryBillList(RkInfo query); } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java index 73c3abd..045dac4 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java @@ -23,6 +23,7 @@ import com.zg.project.system.service.ISysConfigService; import com.zg.project.wisdom.domain.AuditSignature; import com.zg.project.wisdom.domain.GysJh; import com.zg.project.wisdom.domain.dto.*; +import com.zg.project.wisdom.domain.vo.DeliveryBillVO; import com.zg.project.wisdom.mapper.AuditSignatureMapper; import com.zg.project.wisdom.mapper.GysJhMapper; import com.zg.project.wisdom.utils.BillNoUtil; @@ -991,15 +992,6 @@ public class RkInfoServiceImpl implements IRkInfoService return rkInfoMapper.listRkInfoByPcode(pcode); } - /** - * 获取需要配送的出库列表 - * @param query - * @return - */ - @Override - public List selectDeliveryAll(RkInfo query) { - return rkInfoMapper.selectDeliveryAll(query); - } @Override public List selectAllRkInfo(RkInfo query) { @@ -1134,4 +1126,44 @@ public class RkInfoServiceImpl implements IRkInfoService } } } + + @Override + public int updateDeliveryStatus(String billNoCk, Integer isDelivery) { + return rkInfoMapper.updateDeliveryStatus(billNoCk, isDelivery); + } + + @Override + public List selectDeliveryBillList(RkInfo query) { + // 先查出所有符合条件的明细 + List list = rkInfoMapper.selectDeliveryCkList(query); + if (list == null || list.isEmpty()) { + return Collections.emptyList(); + } + + // 按 billNoCk 分组:一个单据对应一组明细 + Map map = new LinkedHashMap<>(); + + for (RkInfo item : list) { + String billNoCk = item.getBillNoCk(); + // 兜底:如果 bill_no_ck 为空,就用 bill_no + if (StringUtils.isEmpty(billNoCk)) { + billNoCk = item.getBillNo(); + } + + DeliveryBillVO vo = map.get(billNoCk); + if (vo == null) { + vo = new DeliveryBillVO(); + vo.setBillNoCk(billNoCk); + vo.setCkLihuoY(item.getCkLihuoY()); + vo.setTeamCode(item.getTeamCode()); + vo.setLyTime(item.getLyTime()); + vo.setDetailList(new ArrayList<>()); + map.put(billNoCk, vo); + } + + vo.getDetailList().add(item); + } + + return new ArrayList<>(map.values()); + } } diff --git a/src/main/resources/application-druid.yml b/src/main/resources/application-druid.yml index 88d57ed..3cde3ee 100644 --- a/src/main/resources/application-druid.yml +++ b/src/main/resources/application-druid.yml @@ -7,9 +7,9 @@ spring: # 主库数据源 master: # url: jdbc:mysql://101.132.133.142:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - url: jdbc:mysql://192.168.1.20:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://192.168.1.28:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://192.168.1.192:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 -# url: jdbc:mysql://192.168.1.251:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.1.251:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://localhost:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: shzg diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3644ec4..bab591d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -69,8 +69,8 @@ spring: redis: # 地址 # host: 101.132.133.142 - host: 192.168.1.20 -# host: 192.168.1.251 +# host: 192.168.1.28 + host: 192.168.1.251 # host: localhost # 端口,默认为6379 port: 6379 diff --git a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml index bac31ea..d468c2c 100644 --- a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml +++ b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml @@ -387,36 +387,64 @@ a.ly_time, a.ck_lihuo_y, u.user_name AS ck_lihuo_y_name, - ru.user_name AS lihuo_y_name + ru.user_name AS lihuo_y_name, + a.is_delivery AS is_delivery FROM ( SELECT - MIN(t.id) AS id, - t.bill_no AS bill_no, - MIN(t.bill_no_ck) AS bill_no_ck, - MIN(t.rk_type) AS rk_type, - MIN(t.wl_type) AS wl_type, - MIN(t.cangku) AS cangku, - MIN(t.rk_time) AS rk_time, - MIN(t.lihuo_y) AS lihuo_y, - MAX(t.is_chuku) AS is_chuku, - MIN(t.xj) AS xj, - MIN(t.xm_no) AS xm_no, - MIN(t.xm_ms) AS xm_ms, - MIN(t.xm_no_ck) AS xm_no_ck, - MIN(t.xm_ms_ck) AS xm_ms_ck, - MIN(t.gys_mc) AS gys_mc, - MIN(t.wl_no) AS wl_no, - MIN(t.wl_ms) AS wl_ms, - MIN(t.gys_no) AS gys_no, - MIN(t.sap_no) AS sap_no, - MIN(t.ck_type) AS ck_type, - MAX(t.ly_time) AS ly_time, - MIN(t.ck_lihuo_y) AS ck_lihuo_y + MIN(t.id) AS id, + t.bill_no AS bill_no, + MIN(t.bill_no_ck) AS bill_no_ck, + MIN(t.rk_type) AS rk_type, + MIN(t.wl_type) AS wl_type, + MIN(t.cangku) AS cangku, + MIN(t.rk_time) AS rk_time, + MIN(t.lihuo_y) AS lihuo_y, + MAX(t.is_chuku) AS is_chuku, + MIN(t.xj) AS xj, + MIN(t.xm_no) AS xm_no, + MIN(t.xm_ms) AS xm_ms, + MIN(t.xm_no_ck) AS xm_no_ck, + MIN(t.xm_ms_ck) AS xm_ms_ck, + MIN(t.gys_mc) AS gys_mc, + MIN(t.wl_no) AS wl_no, + MIN(t.wl_ms) AS wl_ms, + MIN(t.gys_no) AS gys_no, + MIN(t.sap_no) AS sap_no, + MIN(t.ck_type) AS ck_type, + MAX(t.ly_time) AS ly_time, + MIN(t.ck_lihuo_y) AS ck_lihuo_y, + MIN(t.is_delivery) AS is_delivery FROM ( - + SELECT + ri.id, + ri.bill_no, + ri.bill_no_ck, + ri.rk_type, + ri.wl_type, + ri.cangku, + ri.rk_time, + ri.lihuo_y, + ri.is_chuku, + ri.xj, + ri.xm_no, + ri.xm_ms, + ri.xm_no_ck, + ri.xm_ms_ck, + ri.gys_mc, + ri.wl_no, + ri.wl_ms, + ri.gys_no, + ri.sap_no, + ri.ck_type, + ri.ly_time, + ri.ck_lihuo_y, + ri.pcode, + ri.is_delete, + ri.is_delivery + FROM rk_info ri ) t - + AND t.is_delete = #{q.isDelete} @@ -426,7 +454,7 @@ - + AND t.is_chuku IN @@ -439,7 +467,7 @@ - + AND ( t.xm_no LIKE concat('%', #{q.keyword}, '%') @@ -456,39 +484,42 @@ ) - + AND t.rk_type LIKE concat('%', #{q.rkType}, '%') AND t.wl_type LIKE concat('%', #{q.wlType}, '%') AND t.cangku LIKE concat('%', #{q.cangku}, '%') - + = #{q.startTime} ]]> = #{q.lyStartTime}]]> - - AND t.lihuo_y LIKE concat('%', #{q.lihuoY}, '%') - AND t.xj LIKE concat('%', #{q.xj}, '%') - AND t.bill_no LIKE concat('%', #{q.billNo}, '%') + + AND t.lihuo_y LIKE concat('%', #{q.lihuoY}, '%') + AND t.xj LIKE concat('%', #{q.xj}, '%') + AND t.bill_no LIKE concat('%', #{q.billNo}, '%') AND t.bill_no_ck LIKE concat('%', #{q.billNoCk}, '%') - AND t.xm_no LIKE concat('%', #{q.xmNo}, '%') - AND t.xm_ms LIKE concat('%', #{q.xmMs}, '%') - AND t.wl_no LIKE concat('%', #{q.wlNo}, '%') - AND t.wl_ms LIKE concat('%', #{q.wlMs}, '%') - AND t.gys_no LIKE concat('%', #{q.gysNo}, '%') - AND t.gys_mc LIKE concat('%', #{q.gysMc}, '%') - AND t.sap_no LIKE concat('%', #{q.sapNo}, '%') - AND t.xh LIKE concat('%', #{q.xh}, '%') - AND t.pcode LIKE concat('%', #{q.pcode}, '%') + AND t.xm_no LIKE concat('%', #{q.xmNo}, '%') + AND t.xm_ms LIKE concat('%', #{q.xmMs}, '%') + AND t.wl_no LIKE concat('%', #{q.wlNo}, '%') + AND t.wl_ms LIKE concat('%', #{q.wlMs}, '%') + AND t.gys_no LIKE concat('%', #{q.gysNo}, '%') + AND t.gys_mc LIKE concat('%', #{q.gysMc}, '%') + AND t.sap_no LIKE concat('%', #{q.sapNo}, '%') + AND t.pcode LIKE concat('%', #{q.pcode}, '%') - - + + AND t.is_delivery = #{q.isDelivery} + + + + AND t.bill_no_ck IS NOT NULL - + AND NOT EXISTS ( SELECT 1 @@ -507,10 +538,11 @@ LEFT JOIN stock_in_type si ON a.rk_type = si.type_code LEFT JOIN stock_out_type so ON a.ck_type = so.type_code LEFT JOIN sys_user u ON a.ck_lihuo_y = u.user_id - LEFT JOIN material_type mt ON a.wl_type = mt.type_code - LEFT JOIN sys_user ru ON a.lihuo_y = ru.user_id + LEFT JOIN material_type mt ON a.wl_type = mt.type_code + LEFT JOIN sys_user ru ON a.lihuo_y = ru.user_id ORDER BY a.rk_time DESC + - - + + UPDATE rk_info @@ -1154,4 +1220,11 @@ WHERE bill_no = #{billNo} + + UPDATE rk_info + SET is_delivery = #{isDelivery} + WHERE bill_no_ck = #{billNoCk} + AND is_delete = '0' + +