From 4f7d8924b8c5f4f019b16a8563e30c48abef441e Mon Sep 17 00:00:00 2001 From: sen <sen@qq.com> Date: 星期一, 01 九月 2025 13:30:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/yagwly_fa_master' into yagwly_fa_master --- service/src/main/resources/mapper/cwgl/RequestLogMapper.xml | 137 +++ service/src/main/java/com/ruoyi/cwgl/domain/KeyCollectionInfo.java | 176 ++++ service/src/main/java/com/ruoyi/cwgl/domain/RequestLog.java | 77 + admin/src/main/resources/application-custom.yml | 1 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java | 27 service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml | 6 pom.xml | 1 service/src/main/resources/mapper/cwgl/KeyCollectionInfoMapper.xml | 264 ++++++ ui/admin-ui3/src/api/cwgl/keyCollectionInfo.ts | 67 + ui/admin-ui3/src/views/cwgl/keyCollectionInfo/index.vue | 181 ++++ quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java | 3 service/src/main/java/com/ruoyi/cwgl/service/impl/KeyCollectionInfoServiceImpl.java | 217 +++++ service/src/main/java/com/ruoyi/cwgl/service/IKeyCollectionInfoService.java | 116 ++ service/src/main/java/com/ruoyi/cwgl/controller/KeyCollectionInfoController.java | 108 ++ service/src/main/java/com/ruoyi/cwgl/domain/dto/TakeReviewDto.java | 24 api/pom.xml | 29 ui/admin-ui3/src/api/cwgl/requestLog.ts | 67 + service/src/main/java/com/ruoyi/cwgl/controller/RequestLogController.java | 108 ++ api/src/main/java/com/ruoyi/api/controller/LockerApiController.java | 73 + service/src/main/java/com/ruoyi/cwgl/mapper/KeyCollectionInfoMapper.java | 90 ++ service/src/main/java/com/ruoyi/cwgl/mapper/RequestLogMapper.java | 87 ++ service/src/main/java/com/ruoyi/cwgl/domain/dto/ReturnReportDto.java | 24 service/src/main/java/com/ruoyi/cwgl/service/impl/RequestLogServiceImpl.java | 181 ++++ service/src/main/java/com/ruoyi/cwgl/service/IRequestLogService.java | 102 ++ ui/admin-ui3/src/views/cwgl/requestLog/index.vue | 139 +++ 25 files changed, 2,300 insertions(+), 5 deletions(-) diff --git a/admin/src/main/resources/application-custom.yml b/admin/src/main/resources/application-custom.yml index 51db08d..2d1f2bf 100644 --- a/admin/src/main/resources/application-custom.yml +++ b/admin/src/main/resources/application-custom.yml @@ -83,6 +83,7 @@ /captchaImage /actuator/** /*/api-docs + /api/** /druid/** /webjars/** /swagger-resources/** diff --git a/api/pom.xml b/api/pom.xml new file mode 100644 index 0000000..cd72684 --- /dev/null +++ b/api/pom.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>manage</artifactId> + <groupId>com.ruoyi</groupId> + <version>master</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>api</artifactId> + + <dependencies> + + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>api-remote</artifactId> + <version>${project.version}</version> + </dependency> + + + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>service</artifactId> + <version>master</version> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/api/src/main/java/com/ruoyi/api/controller/LockerApiController.java b/api/src/main/java/com/ruoyi/api/controller/LockerApiController.java new file mode 100644 index 0000000..ad837e0 --- /dev/null +++ b/api/src/main/java/com/ruoyi/api/controller/LockerApiController.java @@ -0,0 +1,73 @@ +package com.ruoyi.api.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.cwgl.domain.KeyCollectionInfo; +import com.ruoyi.cwgl.domain.RequestLog; +import com.ruoyi.cwgl.domain.dto.ReturnReportDto; +import com.ruoyi.cwgl.domain.dto.TakeReviewDto; +import com.ruoyi.cwgl.service.IKeyCollectionInfoService; +import com.ruoyi.cwgl.service.IRequestLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 鍌ㄧ墿鏌滄帴鍙� + * @author wjw + */ +@RestController +@RequestMapping("/api/third/locker/") +public class LockerApiController { + + @Autowired + private IKeyCollectionInfoService keyCollectionInfoService; + @Autowired + private IRequestLogService logService; + + /** + * 涓婃姤鍙栧嚭瀹℃牳 + */ + + @PostMapping("takeReview") + public AjaxResult takeReview(@RequestBody TakeReviewDto takeReviewDto){ + + KeyCollectionInfo keyCollectionInfo = keyCollectionInfoService.selectCwData(takeReviewDto); + //娣诲姞璇锋眰鏃ュ織 + RequestLog requestLog = new RequestLog(); + requestLog.setDriverCode(takeReviewDto.getDriverCode()); + requestLog.setDriverName(takeReviewDto.getDriverName()); + requestLog.setReqTime(DateUtils.parseDate(takeReviewDto.getHandleTime())); + requestLog.setType(0); + logService.insertRequestLog(requestLog); + + return keyCollectionInfoService.takeReview(keyCollectionInfo); + + + } + + /** + * 褰掕繕涓婃姤 + */ + + @PostMapping("returnReport") + public AjaxResult returnReport(@RequestBody ReturnReportDto returnReportDto){ + + //娣诲姞璇锋眰鏃ュ織 + RequestLog requestLog = new RequestLog(); + requestLog.setDriverCode(returnReportDto.getDriverCode()); + requestLog.setBoxNum(returnReportDto.getBoxNum()); + requestLog.setReqTime(DateUtils.parseDate(returnReportDto.getSaveTime())); + requestLog.setType(1); + logService.insertRequestLog(requestLog); + + return AjaxResult.success(); + + + } + + +} diff --git a/pom.xml b/pom.xml index d02d130..92d3541 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ <module>quartz</module> <module>common</module> <module>service</module> + <module>api</module> </modules> <packaging>pom</packaging> diff --git a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java index 2ad1316..a32967c 100644 --- a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java +++ b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java @@ -49,6 +49,9 @@ List<EstimatedReceivable> estimatedReceivables = new ArrayList<>(); for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) { pendingSettlementBusiness.setIsCreate(0); + pendingSettlementBusiness.setEstimatedTotalCost(BigDecimal.ZERO); + + pendingSettlementBusiness.setEstimatedTotalIncome(BigDecimal.ZERO); ReceivableLineTruckPriceRule exactMatchingRule = ExactPricingRuleMatcher.findExactMatchingRule(receivableLineTruckPriceRules, pendingSettlementBusiness.getCustomerName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType()); if (exactMatchingRule!=null) { //搴旀敹鏁版嵁 diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/KeyCollectionInfoController.java b/service/src/main/java/com/ruoyi/cwgl/controller/KeyCollectionInfoController.java new file mode 100644 index 0000000..613940b --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/controller/KeyCollectionInfoController.java @@ -0,0 +1,108 @@ +package com.ruoyi.cwgl.controller; + +import java.util.List; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.utils.file.DownloadExportUtil; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.cwgl.domain.KeyCollectionInfo; +import com.ruoyi.cwgl.service.IKeyCollectionInfoService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 閽ュ寵棰嗗彇淇℃伅Controller + * + * @author ruoyi + * @date 2025-08-27 + */ +@RestController +@RequestMapping("/cwgl/keyCollectionInfo") +public class KeyCollectionInfoController extends BaseController +{ + @Autowired + private IKeyCollectionInfoService keyCollectionInfoService; + + + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('cwgl:keyCollectionInfo:list')") + @GetMapping("/list") + public TableDataInfo list(KeyCollectionInfo keyCollectionInfo) + { + startPage(); + List<KeyCollectionInfo> list = keyCollectionInfoService.selectKeyCollectionInfoList(keyCollectionInfo); + return getDataTable(list); + } + + /** + * 瀵煎嚭閽ュ寵棰嗗彇淇℃伅鍒楄〃 + * @param keyCollectionInfo 鏌ヨ鏉′欢瀵硅薄 + */ + @PreAuthorize("@ss.hasPermi('cwgl:keyCollectionInfo:export')") + @Log(title = "閽ュ寵棰嗗彇淇℃伅", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(KeyCollectionInfo keyCollectionInfo,String exportKey) + { + keyCollectionInfoService.export(keyCollectionInfo,exportKey); + return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!"); + } + + + + /** + * 鑾峰彇閽ュ寵棰嗗彇淇℃伅璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('cwgl:keyCollectionInfo:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Integer id) + { + return AjaxResult.success(keyCollectionInfoService.selectKeyCollectionInfoById(id)); + } + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('cwgl:keyCollectionInfo:add')") + @Log(title = "閽ュ寵棰嗗彇淇℃伅", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody KeyCollectionInfo keyCollectionInfo) + { + return toAjax(keyCollectionInfoService.insertKeyCollectionInfo(keyCollectionInfo)); + } + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('cwgl:keyCollectionInfo:edit')") + @Log(title = "閽ュ寵棰嗗彇淇℃伅", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody KeyCollectionInfo keyCollectionInfo) + { + return toAjax(keyCollectionInfoService.updateKeyCollectionInfo(keyCollectionInfo)); + } + + /** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('cwgl:keyCollectionInfo:remove')") + @Log(title = "閽ュ寵棰嗗彇淇℃伅", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Integer[] ids) + { + return toAjax(keyCollectionInfoService.deleteKeyCollectionInfoByIds(ids)); + } +} diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/RequestLogController.java b/service/src/main/java/com/ruoyi/cwgl/controller/RequestLogController.java new file mode 100644 index 0000000..3a213d7 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/controller/RequestLogController.java @@ -0,0 +1,108 @@ +package com.ruoyi.cwgl.controller; + +import java.util.List; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.utils.file.DownloadExportUtil; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.cwgl.domain.RequestLog; +import com.ruoyi.cwgl.service.IRequestLogService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 璇锋眰鏃ュ織Controller + * + * @author ruoyi + * @date 2025-08-27 + */ +@RestController +@RequestMapping("/cwgl/requestLog") +public class RequestLogController extends BaseController +{ + @Autowired + private IRequestLogService requestLogService; + + + + /** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('cwgl:requestLog:list')") + @GetMapping("/list") + public TableDataInfo list(RequestLog requestLog) + { + startPage(); + List<RequestLog> list = requestLogService.selectRequestLogList(requestLog); + return getDataTable(list); + } + + /** + * 瀵煎嚭璇锋眰鏃ュ織鍒楄〃 + * @param requestLog 鏌ヨ鏉′欢瀵硅薄 + */ + @PreAuthorize("@ss.hasPermi('cwgl:requestLog:export')") + @Log(title = "璇锋眰鏃ュ織", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(RequestLog requestLog,String exportKey) + { + requestLogService.export(requestLog,exportKey); + return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!"); + } + + + + /** + * 鑾峰彇璇锋眰鏃ュ織璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('cwgl:requestLog:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Integer id) + { + return AjaxResult.success(requestLogService.selectRequestLogById(id)); + } + + /** + * 鏂板璇锋眰鏃ュ織 + */ + @PreAuthorize("@ss.hasPermi('cwgl:requestLog:add')") + @Log(title = "璇锋眰鏃ュ織", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RequestLog requestLog) + { + return toAjax(requestLogService.insertRequestLog(requestLog)); + } + + /** + * 淇敼璇锋眰鏃ュ織 + */ + @PreAuthorize("@ss.hasPermi('cwgl:requestLog:edit')") + @Log(title = "璇锋眰鏃ュ織", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RequestLog requestLog) + { + return toAjax(requestLogService.updateRequestLog(requestLog)); + } + + /** + * 鍒犻櫎璇锋眰鏃ュ織 + */ + @PreAuthorize("@ss.hasPermi('cwgl:requestLog:remove')") + @Log(title = "璇锋眰鏃ュ織", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Integer[] ids) + { + return toAjax(requestLogService.deleteRequestLogByIds(ids)); + } +} diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/KeyCollectionInfo.java b/service/src/main/java/com/ruoyi/cwgl/domain/KeyCollectionInfo.java new file mode 100644 index 0000000..93e947e --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/domain/KeyCollectionInfo.java @@ -0,0 +1,176 @@ +package com.ruoyi.cwgl.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.baomidou.mybatisplus.annotation.TableField; +import java.util.Date; +import lombok.Data; +/** + * 閽ュ寵棰嗗彇淇℃伅瀵硅薄 key_collection_info + * + * @author ruoyi + * @date 2025-08-27 + */ +@Data +public class KeyCollectionInfo{ + + + /** ID */ + @TableField("id") + private Integer id; + + + /** 瀹㈡埛鍚嶇О */ + @Excel(name = "瀹㈡埛鍚嶇О") + + @TableField("customer_name") + private String customerName; + + + /** 鎵胯繍鍟� */ + @Excel(name = "鎵胯繍鍟�") + + @TableField("carrier") + private String carrier; + + + /** 璋冨害鍗曞彿 */ + @Excel(name = "璋冨害鍗曞彿") + + @TableField("dispatch_no") + private String dispatchNo; + + + /** 鍙告満鍚嶇О */ + @Excel(name = "鍙告満鍚嶇О") + + @TableField("driver_name") + private String driverName; + + + /** 鍙告満鎵嬫満鍙� */ + @Excel(name = "鍙告満鎵嬫満鍙�") + @TableField("driver_mobile") + private String driverMobile; + + + /** 杞︾墝鍙� */ + @Excel(name = "杞︾墝鍙�") + @TableField("license_plate_number") + private String licensePlateNumber; + + + /** 璁㈠崟涓嬪崟鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "璁㈠崟涓嬪崟鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @TableField("order_time") + private Date orderTime; + + + /** 璁㈠崟鍒涘缓鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "璁㈠崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @TableField("order_created_time") + private Date orderCreatedTime; + + + /** 璋冨害鍗曞垱寤烘椂闂� */ + @Excel(name = "璋冨害鍗曞垱寤烘椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("dispatch_created_time") + private Date dispatchCreatedTime; + + + /** 閽ュ寵棰嗗彇鏃堕棿锛堣姹傛煡璇㈡椂闂达級 */ + @Excel(name = "閽ュ寵棰嗗彇鏃堕棿", readConverterExp = "璇�=姹傛煡璇㈡椂闂�") + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("key_collection_time") + private Date keyCollectionTime; + + + /** 棰勮鍑哄彂鏃堕棿 */ + @Excel(name = "棰勮鍑哄彂鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("estimated_departure_time") + private Date estimatedDepartureTime; + + + /** 瑕佹眰鍒拌揪鏃堕棿 */ + @Excel(name = "瑕佹眰鍒拌揪鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("required_arrival_time") + private Date requiredArrivalTime; + + + /** 鍑哄彂鍦板湴鍧� */ + @Excel(name = "鍑哄彂鍦板湴鍧�") + + @TableField("consignor_address") + private String consignorAddress; + + + /** 鐩殑鍦板湴鍧� */ + @Excel(name = "鐩殑鍦板湴鍧�") + + @TableField("consignee_address") + private String consigneeAddress; + + + /** 涓婚┚椹跺憳 */ + @Excel(name = "涓婚┚椹跺憳") + + @TableField("main_driver") + private String mainDriver; + + + /** 鎻愰�佽揣鐐规暟 */ + @Excel(name = "鎻愰�佽揣鐐规暟") + + @TableField("point_num") + private Integer pointNum; + + + /** 杩愯緭鏂瑰紡 */ + @Excel(name = "杩愯緭鏂瑰紡") + @TableField("transport_mode") + private String transportMode; + + + /** 鍓┚椹跺憳 */ + @Excel(name = "鍓┚椹跺憳") + @TableField("assistant_driver") + private String assistantDriver; + + + /** 浠舵暟 */ + @Excel(name = "浠舵暟") + @TableField("quantity") + private Integer quantity; + + + /** 瀹炲彂浠舵暟 */ + @Excel(name = "瀹炲彂浠舵暟") + @TableField("dispatch_quantity") + private Integer dispatchQuantity; + + + /** 澶囨敞 */ + @Excel(name = "澶囨敞") + @TableField("remark") + private String remark; + + /** + * 璋冨害瓒呮椂涓嬪崟锛岃秴鏃�?涓皬鏃� + */ + @TableField(exist = false) + private Integer schedulingTimeout; + + /** + * '棰勮鍑哄彂鏃堕棿 & ord.ESTIMATED_DEPARTURE_TIME 锛岄鍙栭挜鍖欒秴鏃禢涓皬鏃�' + */ + @TableField(exist = false) + private Integer keyTimeout; + +} diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/RequestLog.java b/service/src/main/java/com/ruoyi/cwgl/domain/RequestLog.java new file mode 100644 index 0000000..3900da7 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/domain/RequestLog.java @@ -0,0 +1,77 @@ +package com.ruoyi.cwgl.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.baomidou.mybatisplus.annotation.TableField; +import java.util.Date; +import lombok.Data; +/** + * 璇锋眰鏃ュ織瀵硅薄 request_log + * + * @author ruoyi + * @date 2025-08-27 + */ +@Data +public class RequestLog{ + + + /** 涓婚敭 */ + @TableField("id") + private Integer id; + + + /** 鍙告満鍞竴缂栧彿 */ + @Excel(name = "鍙告満鍞竴缂栧彿") + + @TableField("driver_code") + private String driverCode; + + + /** 鍙告満濮撳悕 */ + @Excel(name = "鍙告満濮撳悕") + + @TableField("driver_name") + private String driverName; + + + /** 鏌滈棬缂栧彿 */ + @Excel(name = "鏌滈棬缂栧彿") + + @TableField("box_num") + private String boxNum; + + + /** 鍒涘缓鑰� */ + @TableField("create_by") + private String createBy; + + + /** 鍒涘缓鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("create_time") + private Date createTime; + + + /** 璇锋眰鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "璇锋眰鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @TableField("req_time") + private Date reqTime; + + + /** 0涓婃姤鍙栧嚭1褰掕繕涓婃姤 */ + @Excel(name = "0涓婃姤鍙栧嚭1褰掕繕涓婃姤") + + @TableField("type") + private Integer type; + + + /** 鎿嶄綔璇存槑 */ + @Excel(name = "鎿嶄綔璇存槑") + + @TableField("operation") + private String operation; + + +} diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReturnReportDto.java b/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReturnReportDto.java new file mode 100644 index 0000000..e36affa --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReturnReportDto.java @@ -0,0 +1,24 @@ +package com.ruoyi.cwgl.domain.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 涓婃姤鍙栧嚭瀹℃牳dto + */ +@Data +public class ReturnReportDto { + + + /**鏌滈棬缂栧彿*/ + @NotBlank(message = "鏌滈棬缂栧彿涓嶈兘涓虹┖") + private String boxNum ; + /**鍙告満鍞竴缂栧彿*/ + @NotBlank(message = "鍙告満鍞竴缂栧彿涓嶈兘涓虹┖") + private String driverCode ; + /**鍙告満鍞竴缂栧彿*/ + @NotBlank(message = "瀛樺叆鏃堕棿涓嶈兘涓虹┖") + private String saveTime ; + +} diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/dto/TakeReviewDto.java b/service/src/main/java/com/ruoyi/cwgl/domain/dto/TakeReviewDto.java new file mode 100644 index 0000000..2edad47 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/domain/dto/TakeReviewDto.java @@ -0,0 +1,24 @@ +package com.ruoyi.cwgl.domain.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 涓婃姤鍙栧嚭瀹℃牳dto + */ +@Data +public class TakeReviewDto { + + + /**鍙告満鍞竴缂栧彿*/ + @NotBlank(message = "鍙告満鍞竴缂栧彿涓嶈兘涓虹┖") + private String driverCode ; + /**鍙告満濮撳悕*/ + @NotBlank(message = "鍙告満濮撳悕涓嶈兘涓虹┖") + private String driverName ; + /**鍙告満鍞竴缂栧彿*/ + @NotBlank(message = "璇锋眰寮�闂ㄦ椂闂翠笉鑳戒负绌�") + private String handleTime ; + +} diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/KeyCollectionInfoMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/KeyCollectionInfoMapper.java new file mode 100644 index 0000000..3aedc58 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/mapper/KeyCollectionInfoMapper.java @@ -0,0 +1,90 @@ +package com.ruoyi.cwgl.mapper; + +import java.util.List; +import com.ruoyi.cwgl.domain.KeyCollectionInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cwgl.domain.dto.TakeReviewDto; + + +/** + * 閽ュ寵棰嗗彇淇℃伅Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2025-08-27 + */ +public interface KeyCollectionInfoMapper extends BaseMapper<KeyCollectionInfo> +{ + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅 + * + * @param id 閽ュ寵棰嗗彇淇℃伅ID + * @return 閽ュ寵棰嗗彇淇℃伅 + */ + public KeyCollectionInfo selectKeyCollectionInfoById(Integer id); + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅 璁板綍鏁� + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + public int selectKeyCollectionInfoCount(KeyCollectionInfo keyCollectionInfo); + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + public List<KeyCollectionInfo> selectKeyCollectionInfoList(KeyCollectionInfo keyCollectionInfo); + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int insertKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo); + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅[鎵归噺] + * + * @param keyCollectionInfos 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int insertKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos); + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int updateKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo); + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅[鎵归噺] + * + * @param keyCollectionInfos 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int updateKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos); + + /** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅 + * + * @param id 閽ュ寵棰嗗彇淇℃伅ID + * @return 缁撴灉 + */ + public int deleteKeyCollectionInfoById(Integer id); + + /** + * 鎵归噺鍒犻櫎閽ュ寵棰嗗彇淇℃伅 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteKeyCollectionInfoByIds(Integer[] ids); + + KeyCollectionInfo selectCwData(TakeReviewDto takeReviewDto); +} diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/RequestLogMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/RequestLogMapper.java new file mode 100644 index 0000000..dd76967 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/mapper/RequestLogMapper.java @@ -0,0 +1,87 @@ +package com.ruoyi.cwgl.mapper; + +import java.util.List; +import com.ruoyi.cwgl.domain.RequestLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + + +/** + * 璇锋眰鏃ュ織Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2025-08-27 + */ +public interface RequestLogMapper extends BaseMapper<RequestLog> +{ + /** + * 鏌ヨ璇锋眰鏃ュ織 + * + * @param id 璇锋眰鏃ュ織ID + * @return 璇锋眰鏃ュ織 + */ + public RequestLog selectRequestLogById(Integer id); + + /** + * 鏌ヨ璇锋眰鏃ュ織 璁板綍鏁� + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + public int selectRequestLogCount(RequestLog requestLog); + + /** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + public List<RequestLog> selectRequestLogList(RequestLog requestLog); + + /** + * 鏂板璇锋眰鏃ュ織 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int insertRequestLog(RequestLog requestLog); + + /** + * 鏂板璇锋眰鏃ュ織[鎵归噺] + * + * @param requestLogs 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int insertRequestLogBatch(List<RequestLog> requestLogs); + + /** + * 淇敼璇锋眰鏃ュ織 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int updateRequestLog(RequestLog requestLog); + + /** + * 淇敼璇锋眰鏃ュ織[鎵归噺] + * + * @param requestLogs 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int updateRequestLogBatch(List<RequestLog> requestLogs); + + /** + * 鍒犻櫎璇锋眰鏃ュ織 + * + * @param id 璇锋眰鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteRequestLogById(Integer id); + + /** + * 鎵归噺鍒犻櫎璇锋眰鏃ュ織 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteRequestLogByIds(Integer[] ids); +} diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IKeyCollectionInfoService.java b/service/src/main/java/com/ruoyi/cwgl/service/IKeyCollectionInfoService.java new file mode 100644 index 0000000..88cf9e7 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/service/IKeyCollectionInfoService.java @@ -0,0 +1,116 @@ +package com.ruoyi.cwgl.service; + +import java.util.List; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.cwgl.domain.KeyCollectionInfo; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.cwgl.domain.dto.TakeReviewDto; + +/** + * 閽ュ寵棰嗗彇淇℃伅Service鎺ュ彛 + * + * @author ruoyi + * @date 2025-08-27 + */ +public interface IKeyCollectionInfoService extends IService<KeyCollectionInfo> +{ + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅 + * + * @param id 閽ュ寵棰嗗彇淇℃伅ID + * @return 閽ュ寵棰嗗彇淇℃伅 + */ + public KeyCollectionInfo selectKeyCollectionInfoById(Integer id); + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅 璁板綍鏁� + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + public int selectKeyCollectionInfoCount(KeyCollectionInfo keyCollectionInfo); + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + public List<KeyCollectionInfo> selectKeyCollectionInfoList(KeyCollectionInfo keyCollectionInfo); + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 寮傛 瀵煎嚭 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + public void export(KeyCollectionInfo keyCollectionInfo, String exportKey) ; + + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int insertKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo); + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅[鎵归噺] + * + * @param keyCollectionInfos 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int insertKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos); + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int updateKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo); + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅[鎵归噺] + * + * @param keyCollectionInfos 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + public int updateKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos); + /** + * 鎵归噺鍒犻櫎閽ュ寵棰嗗彇淇℃伅 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteKeyCollectionInfoByIds(String ids); + + /** + * 鎵归噺鍒犻櫎閽ュ寵棰嗗彇淇℃伅 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteKeyCollectionInfoByIds(Integer[] ids); + + /** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅淇℃伅 + * + * @param id 閽ュ寵棰嗗彇淇℃伅ID + * @return 缁撴灉 + */ + public int deleteKeyCollectionInfoById(Integer id); + + public KeyCollectionInfo selectCwData(TakeReviewDto takeReviewDto); + + /** + * 涓婃姤鍙栧嚭瀹℃牳 + * @param keyCollectionInfo + * @return + */ + AjaxResult takeReview(KeyCollectionInfo keyCollectionInfo); + +} diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IRequestLogService.java b/service/src/main/java/com/ruoyi/cwgl/service/IRequestLogService.java new file mode 100644 index 0000000..3e60661 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/service/IRequestLogService.java @@ -0,0 +1,102 @@ +package com.ruoyi.cwgl.service; + +import java.util.List; +import com.ruoyi.cwgl.domain.RequestLog; +import com.baomidou.mybatisplus.extension.service.IService; +/** + * 璇锋眰鏃ュ織Service鎺ュ彛 + * + * @author ruoyi + * @date 2025-08-27 + */ +public interface IRequestLogService extends IService<RequestLog> +{ + /** + * 鏌ヨ璇锋眰鏃ュ織 + * + * @param id 璇锋眰鏃ュ織ID + * @return 璇锋眰鏃ュ織 + */ + public RequestLog selectRequestLogById(Integer id); + + /** + * 鏌ヨ璇锋眰鏃ュ織 璁板綍鏁� + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + public int selectRequestLogCount(RequestLog requestLog); + + /** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + public List<RequestLog> selectRequestLogList(RequestLog requestLog); + + /** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 寮傛 瀵煎嚭 + * + * @param requestLog 璇锋眰鏃ュ織 + * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + public void export(RequestLog requestLog, String exportKey) ; + + + /** + * 鏂板璇锋眰鏃ュ織 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int insertRequestLog(RequestLog requestLog); + + /** + * 鏂板璇锋眰鏃ュ織[鎵归噺] + * + * @param requestLogs 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int insertRequestLogBatch(List<RequestLog> requestLogs); + + /** + * 淇敼璇锋眰鏃ュ織 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int updateRequestLog(RequestLog requestLog); + + /** + * 淇敼璇锋眰鏃ュ織[鎵归噺] + * + * @param requestLogs 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + public int updateRequestLogBatch(List<RequestLog> requestLogs); + /** + * 鎵归噺鍒犻櫎璇锋眰鏃ュ織 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteRequestLogByIds(String ids); + + /** + * 鎵归噺鍒犻櫎璇锋眰鏃ュ織 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + public int deleteRequestLogByIds(Integer[] ids); + + /** + * 鍒犻櫎璇锋眰鏃ュ織淇℃伅 + * + * @param id 璇锋眰鏃ュ織ID + * @return 缁撴灉 + */ + public int deleteRequestLogById(Integer id); +} diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java index 564fa6a..2940f2f 100644 --- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java +++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java @@ -267,6 +267,9 @@ BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount(); estimatedReceivableBill.setTotalAmount(totalAmount.add(estimatedReceivable.getEstimatedAmount())); estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill); + pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getEstimatedTotalIncome().add(estimatedReceivable.getEstimatedAmount())); + pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); + estimatedReceivable.setRelatedBillStatus(1); } String username = SecurityUtils.getUsername(); @@ -305,6 +308,9 @@ BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount(); estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount())); estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill); + pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getConfirmedTotalIncome().subtract(estimatedReceivable.getEstimatedAmount())); + pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); + estimatedReceivable.setRelatedBillStatus(0); } String username = SecurityUtils.getUsername(); @@ -324,6 +330,27 @@ throw new ServiceException("鏃犻渶閲嶅浣滃簾"); } + PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo()); + if (pendingSettlementBusiness == null){ + throw new ServiceException("璋冨害鍗曚笉瀛樺湪"); + + } + Integer relatedBillStatus = pendingSettlementBusiness.getRelatedBillStatus(); + if (relatedBillStatus.equals(2)||relatedBillStatus.equals(3)){ + throw new ServiceException("褰撳墠璋冨害鍗曞凡缁撶畻鎴栭儴鍒嗙粨绠楁棤娉曚綔搴�"); + } + //纭鐘舵�佷笅浣滃簾鎵嶆墽琛� + if (estimatedReceivable.getIsConfirmed().equals(1)) { + if (pendingSettlementBusiness.getBillId()!=null){ + EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId()); + BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount(); + estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount())); + estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill); + pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getConfirmedTotalIncome().subtract(estimatedReceivable.getEstimatedAmount())); + pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); + estimatedReceivable.setRelatedBillStatus(0); + } + } String username = SecurityUtils.getUsername(); logService.insertEstimatedReceivableLog("浣滃簾搴旀敹",id,username); diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/KeyCollectionInfoServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/KeyCollectionInfoServiceImpl.java new file mode 100644 index 0000000..e95a2d8 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/KeyCollectionInfoServiceImpl.java @@ -0,0 +1,217 @@ +package com.ruoyi.cwgl.service.impl; + +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.cwgl.domain.RequestLog; +import com.ruoyi.cwgl.domain.dto.TakeReviewDto; +import com.ruoyi.cwgl.service.IRequestLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.stereotype.Service; +import org.springframework.scheduling.annotation.Async; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.common.core.service.BaseService; + +import com.ruoyi.cwgl.mapper.KeyCollectionInfoMapper; +import com.ruoyi.cwgl.domain.KeyCollectionInfo; +import com.ruoyi.cwgl.service.IKeyCollectionInfoService; +import com.ruoyi.common.core.text.Convert; + +/** + * 閽ュ寵棰嗗彇淇℃伅Service涓氬姟灞傚鐞� + * + * @author ruoyi + * @date 2025-08-27 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class KeyCollectionInfoServiceImpl extends BaseService<KeyCollectionInfoMapper, KeyCollectionInfo> implements IKeyCollectionInfoService +{ + protected final Logger logger = LoggerFactory.getLogger(getClass()); + @Resource + private KeyCollectionInfoMapper keyCollectionInfoMapper; + + + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅 + * + * @param id 閽ュ寵棰嗗彇淇℃伅ID + * @return 閽ュ寵棰嗗彇淇℃伅 + */ + @DataSource(DataSourceType.SLAVE) + @Override + public KeyCollectionInfo selectKeyCollectionInfoById(Integer id) + { + return keyCollectionInfoMapper.selectKeyCollectionInfoById(id); + } + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅 璁板綍鏁� + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + @DataSource(DataSourceType.SLAVE) + @Override + public int selectKeyCollectionInfoCount(KeyCollectionInfo keyCollectionInfo) + { + return keyCollectionInfoMapper.selectKeyCollectionInfoCount(keyCollectionInfo); + } + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 閽ュ寵棰嗗彇淇℃伅 + */ + @DataSource(DataSourceType.SLAVE) + @Override + public List<KeyCollectionInfo> selectKeyCollectionInfoList(KeyCollectionInfo keyCollectionInfo) + { + return keyCollectionInfoMapper.selectKeyCollectionInfoList(keyCollectionInfo); + } + + /** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 寮傛 瀵煎嚭 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑 + * @return 閽ュ寵棰嗗彇淇℃伅闆嗗悎 + */ + @DataSource(DataSourceType.SLAVE) + @Async + @Override + public void export(KeyCollectionInfo keyCollectionInfo,String exportKey) { + + super.export(KeyCollectionInfo.class,exportKey,"keyCollectionInfoData",(pageNum)->{ + PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE); + return selectKeyCollectionInfoList(keyCollectionInfo); + }); + } + + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo) + { + return keyCollectionInfoMapper.insertKeyCollectionInfo(keyCollectionInfo); + } + + /** + * 鏂板閽ュ寵棰嗗彇淇℃伅[鎵归噺] + * + * @param keyCollectionInfos 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos) + { + int rows = keyCollectionInfoMapper.insertKeyCollectionInfoBatch(keyCollectionInfos); + return rows; + } + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅 + * + * @param keyCollectionInfo 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo) + { + return keyCollectionInfoMapper.updateKeyCollectionInfo(keyCollectionInfo); + } + + /** + * 淇敼閽ュ寵棰嗗彇淇℃伅[鎵归噺] + * + * @param keyCollectionInfos 閽ュ寵棰嗗彇淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos){ + return keyCollectionInfoMapper.updateKeyCollectionInfoBatch(keyCollectionInfos); + } + + /** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅瀵硅薄 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteKeyCollectionInfoByIds(String ids) + { + return deleteKeyCollectionInfoByIds(Convert.toIntArray(ids)); + } + + /** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅瀵硅薄 + * + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteKeyCollectionInfoByIds(Integer[] ids) + { + return keyCollectionInfoMapper.deleteKeyCollectionInfoByIds(ids); + } + + /** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅淇℃伅 + * + * @param id 閽ュ寵棰嗗彇淇℃伅ID + * @return 缁撴灉 + */ + @Override + public int deleteKeyCollectionInfoById(Integer id) + { + return keyCollectionInfoMapper.deleteKeyCollectionInfoById(id); + } + + @DataSource(DataSourceType.CWSJ) + @Override + public KeyCollectionInfo selectCwData(TakeReviewDto takeReviewDto) { + return keyCollectionInfoMapper.selectCwData(takeReviewDto); + } + + @Override + public AjaxResult takeReview(KeyCollectionInfo keyCollectionInfo) { + if (keyCollectionInfo == null) { + return AjaxResult.error("鏌ユ棤绗﹀悎瑕佹眰鐨勮皟搴﹀崟锛岃鑱旂郴璋冨害浜哄憳",3); + } + keyCollectionInfoMapper.insertKeyCollectionInfo(keyCollectionInfo); + + + //璋冨害瓒呮椂 + Integer schedulingTimeout = keyCollectionInfo.getSchedulingTimeout(); + if(schedulingTimeout>5){ + return AjaxResult.error("璋冨害瓒呮椂涓嬪崟锛岃秴鏃�"+schedulingTimeout+"涓皬鏃�",3); + + } + Integer keyTimeout = keyCollectionInfo.getKeyTimeout(); + if (keyTimeout!=null && keyTimeout>24){ + Date estimatedDepartureTime = keyCollectionInfo.getEstimatedDepartureTime(); + String dateToStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, estimatedDepartureTime); + return AjaxResult.error("棰勮鍑哄彂鏃堕棿"+ dateToStr+"锛岄鍙栭挜鍖欒秴鏃�"+keyTimeout+"涓皬鏃�"); + } + return AjaxResult.success("鎴愬姛",2); + } +} diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/RequestLogServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/RequestLogServiceImpl.java new file mode 100644 index 0000000..0f53480 --- /dev/null +++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/RequestLogServiceImpl.java @@ -0,0 +1,181 @@ +package com.ruoyi.cwgl.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.DateUtils; +import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.stereotype.Service; +import org.springframework.scheduling.annotation.Async; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.common.core.service.BaseService; + +import com.ruoyi.cwgl.mapper.RequestLogMapper; +import com.ruoyi.cwgl.domain.RequestLog; +import com.ruoyi.cwgl.service.IRequestLogService; +import com.ruoyi.common.core.text.Convert; + +/** + * 璇锋眰鏃ュ織Service涓氬姟灞傚鐞� + * + * @author ruoyi + * @date 2025-08-27 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class RequestLogServiceImpl extends BaseService<RequestLogMapper, RequestLog> implements IRequestLogService +{ + protected final Logger logger = LoggerFactory.getLogger(getClass()); + @Resource + private RequestLogMapper requestLogMapper; + + + /** + * 鏌ヨ璇锋眰鏃ュ織 + * + * @param id 璇锋眰鏃ュ織ID + * @return 璇锋眰鏃ュ織 + */ + @DataSource(DataSourceType.SLAVE) + @Override + public RequestLog selectRequestLogById(Integer id) + { + return requestLogMapper.selectRequestLogById(id); + } + + /** + * 鏌ヨ璇锋眰鏃ュ織 璁板綍鏁� + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + @DataSource(DataSourceType.SLAVE) + @Override + public int selectRequestLogCount(RequestLog requestLog) + { + return requestLogMapper.selectRequestLogCount(requestLog); + } + + /** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 璇锋眰鏃ュ織 + */ + @DataSource(DataSourceType.SLAVE) + @Override + public List<RequestLog> selectRequestLogList(RequestLog requestLog) + { + return requestLogMapper.selectRequestLogList(requestLog); + } + + /** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 寮傛 瀵煎嚭 + * + * @param requestLog 璇锋眰鏃ュ織 + * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑 + * @return 璇锋眰鏃ュ織闆嗗悎 + */ + @DataSource(DataSourceType.SLAVE) + @Async + @Override + public void export(RequestLog requestLog,String exportKey) { + + super.export(RequestLog.class,exportKey,"requestLogData",(pageNum)->{ + PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE); + return selectRequestLogList(requestLog); + }); + } + + + /** + * 鏂板璇锋眰鏃ュ織 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + @Override + public int insertRequestLog(RequestLog requestLog) + { + requestLog.setCreateTime(DateUtils.getNowDate()); + return requestLogMapper.insertRequestLog(requestLog); + } + + /** + * 鏂板璇锋眰鏃ュ織[鎵归噺] + * + * @param requestLogs 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + @Override + public int insertRequestLogBatch(List<RequestLog> requestLogs) + { + int rows = requestLogMapper.insertRequestLogBatch(requestLogs); + return rows; + } + + /** + * 淇敼璇锋眰鏃ュ織 + * + * @param requestLog 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + @Override + public int updateRequestLog(RequestLog requestLog) + { + return requestLogMapper.updateRequestLog(requestLog); + } + + /** + * 淇敼璇锋眰鏃ュ織[鎵归噺] + * + * @param requestLogs 璇锋眰鏃ュ織 + * @return 缁撴灉 + */ + @Override + public int updateRequestLogBatch(List<RequestLog> requestLogs){ + return requestLogMapper.updateRequestLogBatch(requestLogs); + } + + /** + * 鍒犻櫎璇锋眰鏃ュ織瀵硅薄 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteRequestLogByIds(String ids) + { + return deleteRequestLogByIds(Convert.toIntArray(ids)); + } + + /** + * 鍒犻櫎璇锋眰鏃ュ織瀵硅薄 + * + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public int deleteRequestLogByIds(Integer[] ids) + { + return requestLogMapper.deleteRequestLogByIds(ids); + } + + /** + * 鍒犻櫎璇锋眰鏃ュ織淇℃伅 + * + * @param id 璇锋眰鏃ュ織ID + * @return 缁撴灉 + */ + @Override + public int deleteRequestLogById(Integer id) + { + return requestLogMapper.deleteRequestLogById(id); + } +} diff --git a/service/src/main/resources/mapper/cwgl/KeyCollectionInfoMapper.xml b/service/src/main/resources/mapper/cwgl/KeyCollectionInfoMapper.xml new file mode 100644 index 0000000..85a9bd2 --- /dev/null +++ b/service/src/main/resources/mapper/cwgl/KeyCollectionInfoMapper.xml @@ -0,0 +1,264 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.cwgl.mapper.KeyCollectionInfoMapper"> + + <resultMap type="com.ruoyi.cwgl.domain.KeyCollectionInfo" id="KeyCollectionInfoResult"> + <result property="id" column="id" /> + <result property="customerName" column="customer_name" /> + <result property="carrier" column="carrier" /> + <result property="dispatchNo" column="dispatch_no" /> + <result property="driverName" column="driver_name" /> + <result property="driverMobile" column="driver_mobile" /> + <result property="licensePlateNumber" column="license_plate_number" /> + <result property="orderTime" column="order_time" /> + <result property="orderCreatedTime" column="order_created_time" /> + <result property="dispatchCreatedTime" column="dispatch_created_time" /> + <result property="keyCollectionTime" column="key_collection_time" /> + <result property="estimatedDepartureTime" column="estimated_departure_time" /> + <result property="requiredArrivalTime" column="required_arrival_time" /> + <result property="consignorAddress" column="consignor_address" /> + <result property="consigneeAddress" column="consignee_address" /> + <result property="mainDriver" column="main_driver" /> + <result property="pointNum" column="point_num" /> + <result property="transportMode" column="transport_mode" /> + <result property="assistantDriver" column="assistant_driver" /> + <result property="quantity" column="quantity" /> + <result property="dispatchQuantity" column="dispatch_quantity" /> + <result property="remark" column="remark" /> + </resultMap> + + <sql id="selectKeyCollectionInfoVo"> + select thisTab.id, thisTab.customer_name, thisTab.carrier, thisTab.dispatch_no, thisTab.driver_name, thisTab.driver_mobile, thisTab.license_plate_number, thisTab.order_time, thisTab.order_created_time, thisTab.dispatch_created_time, thisTab.key_collection_time, thisTab.estimated_departure_time, thisTab.required_arrival_time, thisTab.consignor_address, thisTab.consignee_address, thisTab.main_driver, thisTab.point_num, thisTab.transport_mode, thisTab.assistant_driver, thisTab.quantity, thisTab.dispatch_quantity, thisTab.remark from key_collection_info AS thisTab + </sql> + <sql id="selectKeyCollectionInfoVoCount"> + select count(0) from key_collection_info as thisTab + </sql> + + <sql id="whereCondition"> + <if test="customerName != null and customerName != ''"> and thisTab.customer_name like concat('%', #{customerName}, '%')</if> + <if test="carrier != null and carrier != ''"> and thisTab.carrier = #{carrier}</if> + <if test="dispatchNo != null and dispatchNo != ''"> and thisTab.dispatch_no = #{dispatchNo}</if> + <if test="driverName != null and driverName != ''"> and thisTab.driver_name like concat('%', #{driverName}, '%')</if> + <if test="driverMobile != null and driverMobile != ''"> and thisTab.driver_mobile = #{driverMobile}</if> + <if test="licensePlateNumber != null and licensePlateNumber != ''"> and thisTab.license_plate_number = #{licensePlateNumber}</if> + <if test="orderTime != null "> and thisTab.order_time = #{orderTime}</if> + <if test="orderCreatedTime != null "> and thisTab.order_created_time = #{orderCreatedTime}</if> + <if test="dispatchCreatedTime != null "> and thisTab.dispatch_created_time = #{dispatchCreatedTime}</if> + <if test="keyCollectionTime != null "> and thisTab.key_collection_time = #{keyCollectionTime}</if> + <if test="estimatedDepartureTime != null "> and thisTab.estimated_departure_time = #{estimatedDepartureTime}</if> + <if test="requiredArrivalTime != null "> and thisTab.required_arrival_time = #{requiredArrivalTime}</if> + <if test="consignorAddress != null and consignorAddress != ''"> and thisTab.consignor_address = #{consignorAddress}</if> + <if test="consigneeAddress != null and consigneeAddress != ''"> and thisTab.consignee_address = #{consigneeAddress}</if> + <if test="mainDriver != null and mainDriver != ''"> and thisTab.main_driver = #{mainDriver}</if> + <if test="pointNum != null "> and thisTab.point_num = #{pointNum}</if> + <if test="transportMode != null and transportMode != ''"> and thisTab.transport_mode = #{transportMode}</if> + <if test="assistantDriver != null and assistantDriver != ''"> and thisTab.assistant_driver = #{assistantDriver}</if> + <if test="quantity != null "> and thisTab.quantity = #{quantity}</if> + <if test="dispatchQuantity != null "> and thisTab.dispatch_quantity = #{dispatchQuantity}</if> + </sql> + + <!--鏌ヨ--> + <select id="selectKeyCollectionInfoById" parameterType="Integer" resultMap="KeyCollectionInfoResult"> + <include refid="selectKeyCollectionInfoVo"/> + where id = #{id} + </select> + + <select id="selectKeyCollectionInfoCount" parameterType="com.ruoyi.cwgl.domain.KeyCollectionInfo" resultType="int"> + <include refid="selectKeyCollectionInfoVoCount"/> + <where> + <include refid="whereCondition"/> + </where> + </select> + + <select id="selectKeyCollectionInfoList" parameterType="com.ruoyi.cwgl.domain.KeyCollectionInfo" resultMap="KeyCollectionInfoResult"> + <include refid="selectKeyCollectionInfoVo"/> + <where> + <include refid="whereCondition"/> + </where> + order by thisTab.id desc + </select> + <select id="selectCwData" resultType="com.ruoyi.cwgl.domain.KeyCollectionInfo"> +SELECT + customer.`NAME` as customerName, + bp.`NAME` as carrier, + ts.DISPATCH_NO as dispatchNo, + driver_m.`NAME` as driverName, + driver_m.MOBILE as driverMobile, + vhc.LICENSE_PLATE_NUMBER as licensePlateNumber, + ord.ORDER_TIME as orderTime, + ord.CREATED_TIME as orderCreatedTime, + ts.CREATED_TIME as dispatchCreatedTime, + now() as keyCollectionTime, -- 鏀捐姹傛煡璇㈠埌鐨勬椂闂� + ord.ESTIMATED_DEPARTURE_TIME as estimatedDepartureTime, + ord.CONSIGNOR_ADDRESS_ADDR_INFO as consignorAddress, + ord.CONSIGNEE_ADDRESS_ADDR_INFO as consigneeAddress, + driver_m.`NAME` as mainDriver, + ts.POINT_NUM as pointNum, + ts.TRANSPORT_MODE as transportMode, + driver_a.`NAME` as assistantDriver, + ts.QUANTITY as quantity, + ts.REQUIRED_ARRIVAL_TIME as , + ts.DISPATCH_QUANTITY as dispatchQuantity, + ts.REMARK as remark, + TIMESTAMPDIFF(HOUR, ord.ORDER_TIME, ord.CREATED_TIME) as schedulingTimeout, + TIMESTAMPDIFF(HOUR, ord.ESTIMATED_DEPARTURE_TIME, NOW()) as keyTimeout + +FROM + tms_shipment ts + left JOIN oms_order ord ON ts.DISPATCH_NO = ord.DISPATCH_CODE + LEFT JOIN base_customer customer ON customer.ID = ord.CUSTOMER_ID + LEFT JOIN tms_vehicle vhc ON ts.VEHICLE_ID = vhc.id + LEFT JOIN base_provider bp ON bp.ID = ts.CARRIER_ID + LEFT JOIN tms_driver driver_m ON driver_m.ID = ts.MAIN_DRIVER_ID + LEFT JOIN tms_driver driver_a ON driver_a.ID = ts.ASSISTANT_DRIVER_ID +WHERE + ts.`STATUS` = 'A' + <if test="driverCode != null and driverCode != '' "> + and driver_m.MOBILE = #{driverCode} + </if> + <if test="driverName != null and driverName != ''"> + and driver_m.NAME = #{driverName} + </if> +ORDER BY ord.ESTIMATED_DEPARTURE_TIME asc +LIMIT 1 + + + + </select> + + <!-- 鏂板 --> + <insert id="insertKeyCollectionInfo" parameterType="com.ruoyi.cwgl.domain.KeyCollectionInfo" useGeneratedKeys="true" keyProperty="id"> + insert into key_collection_info + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="customerName != null">customer_name,</if> + <if test="carrier != null">carrier,</if> + <if test="dispatchNo != null">dispatch_no,</if> + <if test="driverName != null">driver_name,</if> + <if test="driverMobile != null">driver_mobile,</if> + <if test="licensePlateNumber != null">license_plate_number,</if> + <if test="orderTime != null">order_time,</if> + <if test="orderCreatedTime != null">order_created_time,</if> + <if test="dispatchCreatedTime != null">dispatch_created_time,</if> + <if test="keyCollectionTime != null">key_collection_time,</if> + <if test="estimatedDepartureTime != null">estimated_departure_time,</if> + <if test="requiredArrivalTime != null">required_arrival_time,</if> + <if test="consignorAddress != null">consignor_address,</if> + <if test="consigneeAddress != null">consignee_address,</if> + <if test="mainDriver != null">main_driver,</if> + <if test="pointNum != null">point_num,</if> + <if test="transportMode != null">transport_mode,</if> + <if test="assistantDriver != null">assistant_driver,</if> + <if test="quantity != null">quantity,</if> + <if test="dispatchQuantity != null">dispatch_quantity,</if> + <if test="remark != null">remark,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="customerName != null">#{customerName},</if> + <if test="carrier != null">#{carrier},</if> + <if test="dispatchNo != null">#{dispatchNo},</if> + <if test="driverName != null">#{driverName},</if> + <if test="driverMobile != null">#{driverMobile},</if> + <if test="licensePlateNumber != null">#{licensePlateNumber},</if> + <if test="orderTime != null">#{orderTime},</if> + <if test="orderCreatedTime != null">#{orderCreatedTime},</if> + <if test="dispatchCreatedTime != null">#{dispatchCreatedTime},</if> + <if test="keyCollectionTime != null">#{keyCollectionTime},</if> + <if test="estimatedDepartureTime != null">#{estimatedDepartureTime},</if> + <if test="requiredArrivalTime != null">#{requiredArrivalTime},</if> + <if test="consignorAddress != null">#{consignorAddress},</if> + <if test="consigneeAddress != null">#{consigneeAddress},</if> + <if test="mainDriver != null">#{mainDriver},</if> + <if test="pointNum != null">#{pointNum},</if> + <if test="transportMode != null">#{transportMode},</if> + <if test="assistantDriver != null">#{assistantDriver},</if> + <if test="quantity != null">#{quantity},</if> + <if test="dispatchQuantity != null">#{dispatchQuantity},</if> + <if test="remark != null">#{remark},</if> + </trim> + </insert> + + <insert id="insertKeyCollectionInfoBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> + insert into key_collection_info + <trim prefix="(" suffix=") values" suffixOverrides=","> + id,customer_name,carrier,dispatch_no,driver_name,driver_mobile,license_plate_number,order_time,order_created_time,dispatch_created_time,key_collection_time,estimated_departure_time,required_arrival_time,consignor_address,consignee_address,main_driver,point_num,transport_mode,assistant_driver,quantity,dispatch_quantity,remark, + </trim> + <foreach item="item" index="index" collection="list" separator=","> + <trim prefix="(" suffix=") " suffixOverrides=","> + #{item.id},#{item.customerName},#{item.carrier},#{item.dispatchNo},#{item.driverName},#{item.driverMobile},#{item.licensePlateNumber},#{item.orderTime},#{item.orderCreatedTime},#{item.dispatchCreatedTime},#{item.keyCollectionTime},#{item.estimatedDepartureTime},#{item.requiredArrivalTime},#{item.consignorAddress},#{item.consigneeAddress},#{item.mainDriver},#{item.pointNum},#{item.transportMode},#{item.assistantDriver},#{item.quantity},#{item.dispatchQuantity},#{item.remark}, + </trim> + </foreach> + </insert> + + <!-- 淇敼 --> + <update id="updateKeyCollectionInfo" parameterType="com.ruoyi.cwgl.domain.KeyCollectionInfo"> + update key_collection_info + <trim prefix="SET" suffixOverrides=","> + <if test="customerName != null">customer_name = #{customerName},</if> + <if test="carrier != null">carrier = #{carrier},</if> + <if test="dispatchNo != null">dispatch_no = #{dispatchNo},</if> + <if test="driverName != null">driver_name = #{driverName},</if> + <if test="driverMobile != null">driver_mobile = #{driverMobile},</if> + <if test="licensePlateNumber != null">license_plate_number = #{licensePlateNumber},</if> + <if test="orderTime != null">order_time = #{orderTime},</if> + <if test="orderCreatedTime != null">order_created_time = #{orderCreatedTime},</if> + <if test="dispatchCreatedTime != null">dispatch_created_time = #{dispatchCreatedTime},</if> + <if test="keyCollectionTime != null">key_collection_time = #{keyCollectionTime},</if> + <if test="estimatedDepartureTime != null">estimated_departure_time = #{estimatedDepartureTime},</if> + <if test="requiredArrivalTime != null">required_arrival_time = #{requiredArrivalTime},</if> + <if test="consignorAddress != null">consignor_address = #{consignorAddress},</if> + <if test="consigneeAddress != null">consignee_address = #{consigneeAddress},</if> + <if test="mainDriver != null">main_driver = #{mainDriver},</if> + <if test="pointNum != null">point_num = #{pointNum},</if> + <if test="transportMode != null">transport_mode = #{transportMode},</if> + <if test="assistantDriver != null">assistant_driver = #{assistantDriver},</if> + <if test="quantity != null">quantity = #{quantity},</if> + <if test="dispatchQuantity != null">dispatch_quantity = #{dispatchQuantity},</if> + <if test="remark != null">remark = #{remark},</if> + </trim> + where id = #{id} + </update> + <!-- 淇敼 --> + <update id="updateKeyCollectionInfoBatch" parameterType="java.util.List"> + <foreach collection="list" item="item" index="index" separator=";"> + update key_collection_info + <trim prefix="SET" suffixOverrides=","> + <if test="item.customerName != null">customer_name = #{item.customerName},</if> + <if test="item.carrier != null">carrier = #{item.carrier},</if> + <if test="item.dispatchNo != null">dispatch_no = #{item.dispatchNo},</if> + <if test="item.driverName != null">driver_name = #{item.driverName},</if> + <if test="item.driverMobile != null">driver_mobile = #{item.driverMobile},</if> + <if test="item.licensePlateNumber != null">license_plate_number = #{item.licensePlateNumber},</if> + <if test="item.orderTime != null">order_time = #{item.orderTime},</if> + <if test="item.orderCreatedTime != null">order_created_time = #{item.orderCreatedTime},</if> + <if test="item.dispatchCreatedTime != null">dispatch_created_time = #{item.dispatchCreatedTime},</if> + <if test="item.keyCollectionTime != null">key_collection_time = #{item.keyCollectionTime},</if> + <if test="item.estimatedDepartureTime != null">estimated_departure_time = #{item.estimatedDepartureTime},</if> + <if test="item.requiredArrivalTime != null">required_arrival_time = #{item.requiredArrivalTime},</if> + <if test="item.consignorAddress != null">consignor_address = #{item.consignorAddress},</if> + <if test="item.consigneeAddress != null">consignee_address = #{item.consigneeAddress},</if> + <if test="item.mainDriver != null">main_driver = #{item.mainDriver},</if> + <if test="item.pointNum != null">point_num = #{item.pointNum},</if> + <if test="item.transportMode != null">transport_mode = #{item.transportMode},</if> + <if test="item.assistantDriver != null">assistant_driver = #{item.assistantDriver},</if> + <if test="item.quantity != null">quantity = #{item.quantity},</if> + <if test="item.dispatchQuantity != null">dispatch_quantity = #{item.dispatchQuantity},</if> + <if test="item.remark != null">remark = #{item.remark},</if> + </trim> + where id = #{item.id} + </foreach> + </update> + + <!--鍒犻櫎--> + <delete id="deleteKeyCollectionInfoById" parameterType="Integer"> + delete from key_collection_info where id = #{id} + </delete> + <delete id="deleteKeyCollectionInfoByIds" parameterType="Integer"> + delete from key_collection_info where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + +</mapper> \ No newline at end of file diff --git a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml index 4864194..5015b18 100644 --- a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml +++ b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml @@ -561,11 +561,7 @@ </update> <update id="updateEstimatedReceivableBillStatus"> UPDATE pending_settlement_business - SET - is_create = 1, - bill_id = #{id}, - bill_name = #{billName}, - related_bill_status = 1, + SET related_bill_status = #{status} WHERE dispatch_no IN <foreach item="item" collection="list" open="(" separator="," close=")"> #{item} diff --git a/service/src/main/resources/mapper/cwgl/RequestLogMapper.xml b/service/src/main/resources/mapper/cwgl/RequestLogMapper.xml new file mode 100644 index 0000000..83062d9 --- /dev/null +++ b/service/src/main/resources/mapper/cwgl/RequestLogMapper.xml @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.cwgl.mapper.RequestLogMapper"> + + <resultMap type="com.ruoyi.cwgl.domain.RequestLog" id="RequestLogResult"> + <result property="id" column="id" /> + <result property="driverCode" column="driver_code" /> + <result property="driverName" column="driver_name" /> + <result property="boxNum" column="box_num" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="reqTime" column="req_time" /> + <result property="type" column="type" /> + <result property="operation" column="operation" /> + </resultMap> + + <sql id="selectRequestLogVo"> + select thisTab.id, thisTab.driver_code, thisTab.driver_name, thisTab.box_num, thisTab.create_by, thisTab.create_time, thisTab.req_time, thisTab.type, thisTab.operation from request_log AS thisTab + </sql> + <sql id="selectRequestLogVoCount"> + select count(0) from request_log as thisTab + </sql> + + <sql id="whereCondition"> + <if test="driverCode != null and driverCode != ''"> and thisTab.driver_code = #{driverCode}</if> + <if test="driverName != null and driverName != ''"> and thisTab.driver_name like concat('%', #{driverName}, '%')</if> + <if test="boxNum != null and boxNum != ''"> and thisTab.box_num = #{boxNum}</if> + <if test="reqTime != null "> and thisTab.req_time = #{reqTime}</if> + <if test="type != null "> and thisTab.type = #{type}</if> + <if test="operation != null and operation != ''"> and thisTab.operation = #{operation}</if> + </sql> + + <!--鏌ヨ--> + <select id="selectRequestLogById" parameterType="Integer" resultMap="RequestLogResult"> + <include refid="selectRequestLogVo"/> + where id = #{id} + </select> + + <select id="selectRequestLogCount" parameterType="com.ruoyi.cwgl.domain.RequestLog" resultType="int"> + <include refid="selectRequestLogVoCount"/> + <where> + <include refid="whereCondition"/> + </where> + </select> + + <select id="selectRequestLogList" parameterType="com.ruoyi.cwgl.domain.RequestLog" resultMap="RequestLogResult"> + <include refid="selectRequestLogVo"/> + <where> + <include refid="whereCondition"/> + </where> + order by thisTab.id desc + </select> + + <!-- 鏂板 --> + <insert id="insertRequestLog" parameterType="com.ruoyi.cwgl.domain.RequestLog" useGeneratedKeys="true" keyProperty="id"> + insert into request_log + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="driverCode != null">driver_code,</if> + <if test="driverName != null">driver_name,</if> + <if test="boxNum != null">box_num,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="reqTime != null">req_time,</if> + <if test="type != null">type,</if> + <if test="operation != null">operation,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="driverCode != null">#{driverCode},</if> + <if test="driverName != null">#{driverName},</if> + <if test="boxNum != null">#{boxNum},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="reqTime != null">#{reqTime},</if> + <if test="type != null">#{type},</if> + <if test="operation != null">#{operation},</if> + </trim> + </insert> + + <insert id="insertRequestLogBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> + insert into request_log + <trim prefix="(" suffix=") values" suffixOverrides=","> + id,driver_code,driver_name,box_num,create_by,create_time,req_time,type,operation, + </trim> + <foreach item="item" index="index" collection="list" separator=","> + <trim prefix="(" suffix=") " suffixOverrides=","> + #{item.id},#{item.driverCode},#{item.driverName},#{item.boxNum},#{item.createBy},#{item.createTime},#{item.reqTime},#{item.type},#{item.operation}, + </trim> + </foreach> + </insert> + + <!-- 淇敼 --> + <update id="updateRequestLog" parameterType="com.ruoyi.cwgl.domain.RequestLog"> + update request_log + <trim prefix="SET" suffixOverrides=","> + <if test="driverCode != null">driver_code = #{driverCode},</if> + <if test="driverName != null">driver_name = #{driverName},</if> + <if test="boxNum != null">box_num = #{boxNum},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="reqTime != null">req_time = #{reqTime},</if> + <if test="type != null">type = #{type},</if> + <if test="operation != null">operation = #{operation},</if> + </trim> + where id = #{id} + </update> + <!-- 淇敼 --> + <update id="updateRequestLogBatch" parameterType="java.util.List"> + <foreach collection="list" item="item" index="index" separator=";"> + update request_log + <trim prefix="SET" suffixOverrides=","> + <if test="item.driverCode != null">driver_code = #{item.driverCode},</if> + <if test="item.driverName != null">driver_name = #{item.driverName},</if> + <if test="item.boxNum != null">box_num = #{item.boxNum},</if> + <if test="item.createBy != null">create_by = #{item.createBy},</if> + <if test="item.createTime != null">create_time = #{item.createTime},</if> + <if test="item.reqTime != null">req_time = #{item.reqTime},</if> + <if test="item.type != null">type = #{item.type},</if> + <if test="item.operation != null">operation = #{item.operation},</if> + </trim> + where id = #{item.id} + </foreach> + </update> + + <!--鍒犻櫎--> + <delete id="deleteRequestLogById" parameterType="Integer"> + delete from request_log where id = #{id} + </delete> + <delete id="deleteRequestLogByIds" parameterType="Integer"> + delete from request_log where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + +</mapper> \ No newline at end of file diff --git a/ui/admin-ui3/src/api/cwgl/keyCollectionInfo.ts b/ui/admin-ui3/src/api/cwgl/keyCollectionInfo.ts new file mode 100644 index 0000000..7e61e6e --- /dev/null +++ b/ui/admin-ui3/src/api/cwgl/keyCollectionInfo.ts @@ -0,0 +1,67 @@ +import request,{download,requestType} from "@/utils/request"; +import {BaseEntityInterface} from "@/utils/globalInterface"; +export interface KeyCollectionInfoI extends BaseEntityInterface{ + id ?: number , customerName ?: string , carrier ?: string , dispatchNo ?: string , driverName ?: string , driverMobile ?: string , licensePlateNumber ?: string , orderTime ?: string , orderCreatedTime ?: string , dispatchCreatedTime ?: string , keyCollectionTime ?: string , estimatedDepartureTime ?: string , requiredArrivalTime ?: string , consignorAddress ?: string , consigneeAddress ?: string , mainDriver ?: string , pointNum ?: number , transportMode ?: string , assistantDriver ?: string , quantity ?: number , dispatchQuantity ?: number , remark ?: string } + + +/** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅鍒楄〃 + */ +export const listKeyCollectionInfo:requestType = (query) => { + return request({ + url: '/cwgl/keyCollectionInfo/list', + method:'get', + params:query + }) +} +/** + * 鏌ヨ閽ュ寵棰嗗彇淇℃伅璇︾粏 + */ +export const getKeyCollectionInfo:requestType = (id) => { + return request({ + url: '/cwgl/keyCollectionInfo/' + id, + method:'get' + }) +} + +/** + * 鏂板閽ュ寵棰嗗彇淇℃伅 + */ +export const addKeyCollectionInfo:requestType = (data) => { + return request({ + url: '/cwgl/keyCollectionInfo', + method: 'post', + data + }) +} + +/** + * 淇敼閽ュ寵棰嗗彇淇℃伅 + */ +export const updateKeyCollectionInfo:requestType = (data) => { + return request({ + url: '/cwgl/keyCollectionInfo', + method: 'put', + data + }) +} + +/** + * 鍒犻櫎閽ュ寵棰嗗彇淇℃伅 + */ +export const delKeyCollectionInfo:requestType = (id) => { + return request({ + url: '/cwgl/keyCollectionInfo/' + id, + method: 'delete' + }) +} + + +/** + * 瀵煎嚭閽ュ寵棰嗗彇淇℃伅 + */ +export const exportKeyCollectionInfo:requestType = (query) => { + return new Promise<any>(()=>{ + download('/cwgl/keyCollectionInfo/export',query); + }) +} diff --git a/ui/admin-ui3/src/api/cwgl/requestLog.ts b/ui/admin-ui3/src/api/cwgl/requestLog.ts new file mode 100644 index 0000000..5dcbbcd --- /dev/null +++ b/ui/admin-ui3/src/api/cwgl/requestLog.ts @@ -0,0 +1,67 @@ +import request,{download,requestType} from "@/utils/request"; +import {BaseEntityInterface} from "@/utils/globalInterface"; +export interface RequestLogI extends BaseEntityInterface{ + id ?: number , driverCode ?: string , driverName ?: string , boxNum ?: string , createBy ?: string , createTime ?: string , reqTime ?: string , type ?: number , operation ?: string } + + +/** + * 鏌ヨ璇锋眰鏃ュ織鍒楄〃 + */ +export const listRequestLog:requestType = (query) => { + return request({ + url: '/cwgl/requestLog/list', + method:'get', + params:query + }) +} +/** + * 鏌ヨ璇锋眰鏃ュ織璇︾粏 + */ +export const getRequestLog:requestType = (id) => { + return request({ + url: '/cwgl/requestLog/' + id, + method:'get' + }) +} + +/** + * 鏂板璇锋眰鏃ュ織 + */ +export const addRequestLog:requestType = (data) => { + return request({ + url: '/cwgl/requestLog', + method: 'post', + data + }) +} + +/** + * 淇敼璇锋眰鏃ュ織 + */ +export const updateRequestLog:requestType = (data) => { + return request({ + url: '/cwgl/requestLog', + method: 'put', + data + }) +} + +/** + * 鍒犻櫎璇锋眰鏃ュ織 + */ +export const delRequestLog:requestType = (id) => { + return request({ + url: '/cwgl/requestLog/' + id, + method: 'delete' + }) +} + + +/** + * 瀵煎嚭璇锋眰鏃ュ織 + */ +export const exportRequestLog:requestType = (query) => { + return new Promise<any>(()=>{ + download('/cwgl/requestLog/export',query); + }) +} diff --git a/ui/admin-ui3/src/views/cwgl/keyCollectionInfo/index.vue b/ui/admin-ui3/src/views/cwgl/keyCollectionInfo/index.vue new file mode 100644 index 0000000..aca7e9f --- /dev/null +++ b/ui/admin-ui3/src/views/cwgl/keyCollectionInfo/index.vue @@ -0,0 +1,181 @@ +<template> + <basicContainer > + <avue-crud + :option="option" + :table-loading="pageF.loading" + :data="tableData" + :page="page" + :permission="permissionList" + :before-open="beforeOpen" + v-model="form" + ref="crudRef" + @row-update="rowUpdate" + @row-save="rowSave" + @refresh-change="refreshChange" + @row-del="rowDel" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @on-load="onLoad" + > + <template #menu-left> + <el-button + type="success" + icon="Edit" + :disabled="pageF.single" + v-hasPermi="['cwgl:keyCollectionInfo:edit']" + @click="handleUpdate">淇敼 + </el-button> + <el-button + type="danger" + icon="Delete" + :disabled="pageF.multiple" + @click="handleDelete" + v-hasPermi="['cwgl:keyCollectionInfo:remove']" + >鍒犻櫎 + </el-button> + <el-button + type="warning" + plain + icon="Download" + @click="handleExport" + v-hasPermi="['cwgl:keyCollectionInfo:export']" + >瀵煎嚭 + </el-button> + </template> + </avue-crud> + </basicContainer> +</template> + +<script setup name="keyCollectionInfo" lang="ts"> + import {KeyCollectionInfoI,addKeyCollectionInfo, delKeyCollectionInfo, exportKeyCollectionInfo, getKeyCollectionInfo, listKeyCollectionInfo, updateKeyCollectionInfo} from "@/api/cwgl/keyCollectionInfo"; + import useCurrentInstance from "@/utils/useCurrentInstance"; + import {computed,reactive, ref, toRefs} from "vue"; + import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface"; + import {usePagePlus} from "@/hooks/usePagePlus"; + import {hasPermission} from "@/utils/permissionUtils"; + + const { proxy } = useCurrentInstance(); + const crudRef = ref(); + + const permissionList = computed(()=>{ + return { + addBtn: hasPermission(["cwgl:keyCollectionInfo:add"]), + delBtn: hasPermission(["cwgl:keyCollectionInfo:remove"]), + editBtn: hasPermission(["cwgl:keyCollectionInfo:edit"]), + viewBtn: hasPermission(["cwgl:keyCollectionInfo:query"]), + } + }) + + const data = reactive({ + form:<KeyCollectionInfoI>{}, + queryParams:<KeyCollectionInfoI&PageQueryInterface>{}, + page: <PagesInterface>{ + pageSize: 10, + total: 0, + currentPage: 1, + }, + selectionList:[], + }) + const {queryParams,form,page,selectionList} = toRefs(data); + const option = ref({ + pageKey: 'KeyCollectionInfo', + rowKey: 'id', + column: { + id: { + label: 'ID', + }, + customerName: { + label: '瀹㈡埛鍚嶇О', + }, + carrier: { + label: '鎵胯繍鍟�', + }, + dispatchNo: { + label: '璋冨害鍗曞彿', + }, + driverName: { + label: '鍙告満鍚嶇О', + }, + driverMobile: { + label: '鍙告満鎵嬫満鍙�', + }, + licensePlateNumber: { + label: '杞︾墝鍙�', + }, + orderTime: { + label: '璁㈠崟涓嬪崟鏃堕棿', + }, + orderCreatedTime: { + label: '璁㈠崟鍒涘缓鏃堕棿', + }, + dispatchCreatedTime: { + label: '璋冨害鍗曞垱寤烘椂闂�', + }, + keyCollectionTime: { + label: '閽ュ寵棰嗗彇鏃堕棿', + }, + estimatedDepartureTime: { + label: '棰勮鍑哄彂鏃堕棿', + }, + requiredArrivalTime: { + label: '瑕佹眰鍒拌揪鏃堕棿', + }, + consignorAddress: { + label: '鍑哄彂鍦板湴鍧�', + type: 'textarea', minRows: 3, maxRows: 5, + }, + consigneeAddress: { + label: '鐩殑鍦板湴鍧�', + type: 'textarea', minRows: 3, maxRows: 5, + }, + mainDriver: { + label: '涓婚┚椹跺憳', + }, + pointNum: { + label: '鎻愰�佽揣鐐规暟', + }, + transportMode: { + label: '杩愯緭鏂瑰紡', + }, + assistantDriver: { + label: '鍓┚椹跺憳', + }, + quantity: { + label: '浠舵暟', + }, + dispatchQuantity: { + label: '瀹炲彂浠舵暟', + }, + remark: { + label: '澶囨敞', + type: 'textarea', minRows: 3, maxRows: 5, + }, + } + }) + + const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange, + searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({ + form:form, + option:option, + queryParams:queryParams, + idKey:'id', + page:page.value, + getListApi:listKeyCollectionInfo, + getDetailApi:getKeyCollectionInfo, + exportApi:exportKeyCollectionInfo, + deleteApi:delKeyCollectionInfo, + addApi:addKeyCollectionInfo, + updateApi:updateKeyCollectionInfo, + handleUpdateFunc:()=>{ + crudRef.value.rowEdit(selectionList.value[0]); + }, + handleSelectionChangeFunc:(selection:any)=>{ + selectionList.value = selection; + } + }) + + +</script> diff --git a/ui/admin-ui3/src/views/cwgl/requestLog/index.vue b/ui/admin-ui3/src/views/cwgl/requestLog/index.vue new file mode 100644 index 0000000..26942fe --- /dev/null +++ b/ui/admin-ui3/src/views/cwgl/requestLog/index.vue @@ -0,0 +1,139 @@ +<template> + <basicContainer > + <avue-crud + :option="option" + :table-loading="pageF.loading" + :data="tableData" + :page="page" + :permission="permissionList" + :before-open="beforeOpen" + v-model="form" + ref="crudRef" + @row-update="rowUpdate" + @row-save="rowSave" + @refresh-change="refreshChange" + @row-del="rowDel" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @on-load="onLoad" + > + <template #menu-left> + <el-button + type="success" + icon="Edit" + :disabled="pageF.single" + v-hasPermi="['cwgl:requestLog:edit']" + @click="handleUpdate">淇敼 + </el-button> + <el-button + type="danger" + icon="Delete" + :disabled="pageF.multiple" + @click="handleDelete" + v-hasPermi="['cwgl:requestLog:remove']" + >鍒犻櫎 + </el-button> + <el-button + type="warning" + plain + icon="Download" + @click="handleExport" + v-hasPermi="['cwgl:requestLog:export']" + >瀵煎嚭 + </el-button> + </template> + </avue-crud> + </basicContainer> +</template> + +<script setup name="requestLog" lang="ts"> + import {RequestLogI,addRequestLog, delRequestLog, exportRequestLog, getRequestLog, listRequestLog, updateRequestLog} from "@/api/cwgl/requestLog"; + import useCurrentInstance from "@/utils/useCurrentInstance"; + import {computed,reactive, ref, toRefs} from "vue"; + import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface"; + import {usePagePlus} from "@/hooks/usePagePlus"; + import {hasPermission} from "@/utils/permissionUtils"; + + const { proxy } = useCurrentInstance(); + const crudRef = ref(); + + const permissionList = computed(()=>{ + return { + addBtn: hasPermission(["cwgl:requestLog:add"]), + delBtn: hasPermission(["cwgl:requestLog:remove"]), + editBtn: hasPermission(["cwgl:requestLog:edit"]), + viewBtn: hasPermission(["cwgl:requestLog:query"]), + } + }) + + const data = reactive({ + form:<RequestLogI>{}, + queryParams:<RequestLogI&PageQueryInterface>{}, + page: <PagesInterface>{ + pageSize: 10, + total: 0, + currentPage: 1, + }, + selectionList:[], + }) + const {queryParams,form,page,selectionList} = toRefs(data); + const option = ref({ + pageKey: 'RequestLog', + rowKey: 'id', + column: { + id: { + label: '涓婚敭', + }, + driverCode: { + label: '鍙告満鍞竴缂栧彿', + }, + driverName: { + label: '鍙告満濮撳悕', + }, + boxNum: { + label: '鏌滈棬缂栧彿', + }, + createBy: { + label: '鍒涘缓鑰�', + }, + createTime: { + label: '鍒涘缓鏃堕棿', + }, + reqTime: { + label: '璇锋眰鏃堕棿', + }, + type: { + label: '0涓婃姤鍙栧嚭1褰掕繕涓婃姤', + }, + operation: { + label: '鎿嶄綔璇存槑', + }, + } + }) + + const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange, + searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({ + form:form, + option:option, + queryParams:queryParams, + idKey:'id', + page:page.value, + getListApi:listRequestLog, + getDetailApi:getRequestLog, + exportApi:exportRequestLog, + deleteApi:delRequestLog, + addApi:addRequestLog, + updateApi:updateRequestLog, + handleUpdateFunc:()=>{ + crudRef.value.rowEdit(selectionList.value[0]); + }, + handleSelectionChangeFunc:(selection:any)=>{ + selectionList.value = selection; + } + }) + + +</script> -- Gitblit v1.8.0