From 277b5047d00a3e9094bafd5ecb078976fbf6a92d Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 08 一月 2026 18:59:04 +0800
Subject: [PATCH] 华玺砂浆转移-采购代码、发货和发货审核、报修和报修审核、采购模板,查询采购模板接口、财务管理的存货核算数据接口、财务管理的固定资产核算获取台账接口、采购审批,接口、客户分类字段、采购台账字段,实现采购异常记录的添加接口、黑名单,添加资质管理字段,可上传资质文件-至军泰伟业
---
src/main/java/com/ruoyi/basic/pojo/Customer.java | 4
src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java | 2
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 52 ++
src/main/java/com/ruoyi/device/dto/DeviceRepairDto.java | 5
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java | 46 ++
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 12
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java | 4
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | 25 +
src/main/resources/mapper/measuringinstrumentledger/SparePartsMapper.xml | 7
src/main/resources/mapper/basic/SupplierManageFileMapper.xml | 9
src/main/resources/mapper/sales/ShipmentApprovalMapper.xml | 24 +
src/main/java/com/ruoyi/device/controller/DeviceRepairController.java | 62 ++
src/main/java/com/ruoyi/device/pojo/DeviceRepair.java | 15
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 17
src/main/java/com/ruoyi/basic/mapper/SupplierManageFileMapper.java | 15
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java | 1
src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java | 16
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 3
src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java | 4
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java | 1
src/main/resources/mapper/procurementrecord/ProcurementExceptionRecordMapper.xml | 5
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 5
src/main/resources/mapper/basic/SupplierManageMapper.xml | 8
src/main/resources/mapper/purchase/ProductRecordMapper.xml | 4
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 25 +
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 4
src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java | 63 ++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 23
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 6
src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java | 44 +
src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java | 28 +
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 37 +
src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java | 8
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 16
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 9
src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java | 13
src/main/java/com/ruoyi/basic/service/impl/SupplierManageFileServiceImpl.java | 23 +
src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java | 39 +
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java | 12
src/main/java/com/ruoyi/basic/pojo/SupplierManage.java | 3
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 62 ++
src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java | 32 +
src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java | 6
src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java | 77 +++
src/main/resources/mapper/quality/QualityInspectMapper.xml | 8
src/main/java/com/ruoyi/basic/service/SupplierManageFileService.java | 12
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementExceptionRecordMapper.java | 9
src/main/resources/mapper/device/DeviceRepairMapper.xml | 2
src/main/java/com/ruoyi/basic/pojo/SupplierManageFile.java | 60 ++
src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java | 352 ++++++++++++++++
50 files changed, 1,250 insertions(+), 69 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index 6fefc5d..64177e8 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -157,7 +157,14 @@
* 鍒涘缓鏃堕棿
*/
private LocalDateTime createTime;
-
+ /**
+ * 璁惧鎶ヤ慨id
+ */
+ private Long deviceRepairId;
+ /**
+ * 鎶ヤ慨閲戦
+ */
+ private BigDecimal maintenancePrice;
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index 899d5c8..f5919de 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -10,6 +10,8 @@
import com.ruoyi.approve.service.IApproveNodeService;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.device.mapper.DeviceRepairMapper;
+import com.ruoyi.device.pojo.DeviceRepair;
import com.ruoyi.other.service.impl.TempFileServiceImpl;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -43,6 +45,9 @@
@Autowired
private CommonFileMapper fileMapper;
+ @Autowired
+ private DeviceRepairMapper deviceRepairMapper;
+
public ApproveProcess getApproveById(String id) {
@@ -135,11 +140,21 @@
approveProcess.setApproveUserCurrentId(approveNode1.getApproveNodeUserId());
approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser());
}
- if (approveProcess.getApproveStatus() != 1){
+ if(approveProcess.getApproveStatus().equals(2) || approveProcess.getApproveStatus().equals(3) || approveProcess.getApproveStatus().equals(4)){
approveProcess.setApproveOverTime(new Date());
}
approveProcessMapper.updateById(approveProcess);
+ DeviceRepair deviceRepair = deviceRepairMapper.selectById(approveProcess.getDeviceRepairId());
+ if(deviceRepair == null) throw new RuntimeException("璁惧鎶ヤ慨涓嶅瓨鍦�");
+ if(approveProcess.getApproveStatus().equals(2)){
+ // 鍚屾剰
+ deviceRepair.setStatus(1);
+ }else if(approveProcess.getApproveStatus().equals(3)){
+ // 鎷掔粷
+ deviceRepair.setStatus(2);
+ }
+ deviceRepairMapper.updateById(deviceRepair);
// 缁戝畾闄勪欢
if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){
tempFileService.migrateTempFilesToFormal(approveNode.getId(), approveNode.getTempFileIds(), FileNameType.ApproveNode.getValue());
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index 58e188c..404d594 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -74,16 +74,14 @@
if(CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
if(sysDept == null) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
if(sysUser == null) throw new RuntimeException("鐢宠浜轰笉瀛樺湪");
-// String today = LocalDate.now().format(DATE_FORMAT);
- String approve_process = OrderUtils.countTodayByCreateTime(approveProcessMapper, "");
-// Long approveId = dailyRedisCounter.incrementAndGetByDb();
-// String formattedCount = String.format("%03d", approveId);
+ String today = LocalDate.now().format(DATE_FORMAT);
+ Long approveId = dailyRedisCounter.incrementAndGetByDb();
+ String formattedCount = String.format("%03d", approveId);
//娴佺▼ ID
-// String approveID = today + formattedCount;
+ String approveID = today + formattedCount;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
ApproveProcess approveProcess = new ApproveProcess();
- BeanUtils.copyProperties(approveProcessVO, approveProcess);
- approveProcess.setApproveId(approve_process);
+ approveProcess.setApproveId(approveID);
approveProcess.setApproveUser(approveProcessVO.getApproveUser());
approveProcess.setApproveUserName(sysUser.getNickName());
approveProcess.setApproveDeptId(approveProcessVO.getApproveDeptId());
@@ -91,6 +89,8 @@
approveProcess.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
approveProcess.setApproveTime(StringUtils.isEmpty(approveProcessVO.getApproveTime()) ? null : dateFormat.parse(approveProcessVO.getApproveTime()));
approveProcess.setApproveReason(approveProcessVO.getApproveReason());
+ approveProcess.setDeviceRepairId(approveProcessVO.getDeviceRepairId());
+ approveProcess.setMaintenancePrice(approveProcessVO.getMaintenancePrice());
approveProcess.setApproveOverTime(null);
approveProcess.setApproveStatus(0);
approveProcess.setApproveDelete(0);
@@ -113,7 +113,7 @@
}
save(approveProcess);
//鍒濆鍖栧鎵硅妭鐐�
- approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approve_process,approveProcessVO.getApproveDeptId());
+ approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId());
// 闄勪欢缁戝畾
tempFileService.migrateTempFilesToFormal(approveProcess.getId(), approveProcessVO.getTempFileIds(), FileNameType.ApproveProcess.getValue());
}
diff --git a/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java b/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
index e9fb7f2..bf8edae 100644
--- a/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
+++ b/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
@@ -14,24 +14,37 @@
@Data
public class ApproveProcessVO {
-
+ /**
+ * 涓存椂鏂囦欢id鍒楄〃
+ */
private List<String> tempFileIds;
-
+ /**
+ * 瀹℃壒娴佺▼id
+ */
private Long id;
-
+ private String approveId;
+ /**
+ * 瀹℃壒閮ㄩ棬id
+ */
private Long approveDeptId;
-
- private String approveDeptName;
-
+ /**
+ * 瀹℃壒鏃堕棿
+ */
private String approveTime;
-
+ /**
+ * 鐢宠浜篿d
+ */
// 鐢宠浜�
private Long approveUser;
-
+ /**
+ * 瀹℃壒浜篿d鍒楄〃
+ */
// 瀹℃壒浜�
private String approveUserIds;
-
+ /**
+ * 瀹℃壒鐞嗙敱
+ */
private String approveReason;
@Excel(name = "寮�濮嬫椂闂�", dateFormat = "yyyy-MM-dd",width = 30)
@@ -54,4 +67,12 @@
* 瀹℃壒绫诲瀷
*/
private Integer approveType;
+ /**
+ * 璁惧鎶ヤ慨id
+ */
+ private Long deviceRepairId;
+ /**
+ * 鎶ヤ慨閲戦
+ */
+ private BigDecimal maintenancePrice;
}
diff --git a/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java b/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java
new file mode 100644
index 0000000..ff54830
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.basic.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.pojo.SupplierManageFile;
+import com.ruoyi.basic.service.SupplierManageFileService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 渚涘簲鍟嗛檮浠�
+ */
+@RestController
+@RequestMapping("/basic/supplierManageFile")
+public class SupplierManageFileController {
+
+
+ @Resource
+ private SupplierManageFileService supplierManageFileService;
+
+
+ /**
+ * 鏂板
+ * @param supplierManageFile
+ * @return
+ */
+ @PostMapping("/add")
+ public AjaxResult add(@RequestBody SupplierManageFile supplierManageFile) {
+ return AjaxResult.success(supplierManageFileService.save(supplierManageFile));
+ }
+
+ /**
+ * 鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @DeleteMapping("/del")
+ public AjaxResult delSupplierManageFile(@RequestBody List<Integer> ids) {
+ if(CollectionUtils.isEmpty(ids)){
+ return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ }
+ //鍒犻櫎妫�楠岄檮浠�
+ return AjaxResult.success(supplierManageFileService.removeBatchByIds(ids));
+ }
+
+ /**
+ *鍒嗛〉鏌ヨ
+ * @param page
+ * @param supplierManageFile
+ * @return
+ */
+ @GetMapping("/listPage")
+ public AjaxResult supplierManageFileListPage(Page page, SupplierManageFile supplierManageFile) {
+ return AjaxResult.success(supplierManageFileService.supplierManageFileListPage(page, supplierManageFile));
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/basic/mapper/SupplierManageFileMapper.java b/src/main/java/com/ruoyi/basic/mapper/SupplierManageFileMapper.java
new file mode 100644
index 0000000..a3acd20
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/mapper/SupplierManageFileMapper.java
@@ -0,0 +1,15 @@
+package com.ruoyi.basic.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.pojo.SupplierManageFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface SupplierManageFileMapper extends BaseMapper<SupplierManageFile> {
+
+
+ IPage<SupplierManageFile> supplierManageFileListPage(Page page, @Param("supplierManageFile") SupplierManageFile supplierManageFile);
+}
diff --git a/src/main/java/com/ruoyi/basic/pojo/Customer.java b/src/main/java/com/ruoyi/basic/pojo/Customer.java
index d68b918..511e691 100644
--- a/src/main/java/com/ruoyi/basic/pojo/Customer.java
+++ b/src/main/java/com/ruoyi/basic/pojo/Customer.java
@@ -31,6 +31,10 @@
*/
@Excel(name = "瀹㈡埛鍚嶇О")
private String customerName;
+ /** 瀹㈡埛鍒嗙被锛氶浂鍞鎴凤紝杩涢攢鍟嗗鎴� */
+
+ @Excel(name = "瀹㈡埛鍒嗙被")
+ private String customerType;
/**
* 绾崇◣浜鸿瘑鍒彿
diff --git a/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java b/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
index 142a6f2..a18a47b 100644
--- a/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
+++ b/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
@@ -56,6 +56,9 @@
@JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "缁存姢鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
private LocalDate maintainTime;
+ @Excel(name = "鏄惁鐧藉悕鍗�")
+ @ApiModelProperty(value = "鏄惁鐧藉悕鍗曪紙0鏄� 1鍚︼級")
+ private Integer isWhite;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@TableField(fill = FieldFill.INSERT)
diff --git a/src/main/java/com/ruoyi/basic/pojo/SupplierManageFile.java b/src/main/java/com/ruoyi/basic/pojo/SupplierManageFile.java
new file mode 100644
index 0000000..31914fa
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/pojo/SupplierManageFile.java
@@ -0,0 +1,60 @@
+package com.ruoyi.basic.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 渚涘簲鍟嗙鐞�--闄勪欢
+ * supplier_manage_file
+ */
+@TableName(value = "supplier_manage_file")
+@Data
+public class SupplierManageFile implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 搴忓彿
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "鏂囦欢璺緞")
+ private String url;
+
+ @ApiModelProperty(value = "鏂囦欢澶у皬")
+ private int fileSize;
+
+ @ApiModelProperty(value = "渚涘簲鍟咺D")
+ @NotBlank(message = "渚涘簲鍟唅d涓嶈兘涓虹┖!")
+ private Long supplierId;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/basic/service/SupplierManageFileService.java b/src/main/java/com/ruoyi/basic/service/SupplierManageFileService.java
new file mode 100644
index 0000000..2cea459
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/service/SupplierManageFileService.java
@@ -0,0 +1,12 @@
+package com.ruoyi.basic.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.basic.pojo.SupplierManageFile;
+
+public interface SupplierManageFileService extends IService<SupplierManageFile> {
+
+
+ IPage<SupplierManageFile> supplierManageFileListPage(Page page, SupplierManageFile supplierManageFile);
+}
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 899e21f..f24a2d2 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -74,9 +74,13 @@
// 2. 鏋勫缓鏌ヨ鏉′欢锛堝寮虹┖鍊煎畨鍏級
LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
String customerName = customer.getCustomerName();
+ String customerType = customer.getCustomerType();
if (StringUtils.isNotBlank(customerName)) {
queryWrapper.like(Customer::getCustomerName, customerName);
}
+ if (StringUtils.isNotBlank(customerType)) {
+ queryWrapper.like(Customer::getCustomerType, customerType);
+ }
// 3. 鎵ц鍒嗛〉鏌ヨ锛堜繚鐣欏垎椤靛厓鏁版嵁锛�
IPage<Customer> customerPage = customerMapper.selectPage(page, queryWrapper);
diff --git a/src/main/java/com/ruoyi/basic/service/impl/SupplierManageFileServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/SupplierManageFileServiceImpl.java
new file mode 100644
index 0000000..93fe71d
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/service/impl/SupplierManageFileServiceImpl.java
@@ -0,0 +1,23 @@
+package com.ruoyi.basic.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.mapper.SupplierManageFileMapper;
+import com.ruoyi.basic.pojo.SupplierManageFile;
+import com.ruoyi.basic.service.SupplierManageFileService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service
+public class SupplierManageFileServiceImpl extends ServiceImpl<SupplierManageFileMapper, SupplierManageFile> implements SupplierManageFileService {
+
+ private SupplierManageFileMapper supplierManageFileMapper;
+
+ @Override
+ public IPage<SupplierManageFile> supplierManageFileListPage(Page page, SupplierManageFile supplierManageFile) {
+ return supplierManageFileMapper.supplierManageFileListPage(page, supplierManageFile);
+ }
+}
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
index 4606c83..130e5df 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -1,21 +1,33 @@
package com.ruoyi.device.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.dto.DeviceRepairDto;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.pojo.DeviceRepair;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.device.service.IDeviceRepairService;
+import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.system.domain.SysDept;
+import com.ruoyi.project.system.domain.SysUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Arrays;
+import java.util.List;
@Api(tags = "璁惧鎶ヤ慨绠$悊")
@RequestMapping("/device/repair")
@@ -27,6 +39,8 @@
@Autowired
private IDeviceLedgerService deviceLedgerService;
+ @Autowired
+ private IApproveProcessService approveProcessService;
@ApiModelProperty("璁惧鎶ヤ慨鍒楄〃")
@GetMapping("/page")
@@ -35,9 +49,40 @@
}
@PostMapping()
+ @Transactional(rollbackFor = Exception.class)
@ApiModelProperty("娣诲姞璁惧鎶ヤ慨")
- public AjaxResult add( @RequestBody DeviceRepair deviceRepair) {
- return deviceRepairService.saveDeviceRepair(deviceRepair);
+ public AjaxResult add( @RequestBody DeviceRepair deviceRepair) throws Exception {
+ deviceRepairService.saveDeviceRepair(deviceRepair);
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ SysUser user = loginUser.getUser();
+ // 鑾峰彇褰撳墠鐧诲綍鍏徃
+ Long tenantId = loginUser.getTenantId();
+ if(null != tenantId){
+ LambdaQueryWrapper<DeviceRepair> QueryWrapper = new LambdaQueryWrapper<>();
+ QueryWrapper.eq(DeviceRepair::getDeviceLedgerId,deviceRepair.getDeviceLedgerId())
+ .eq(DeviceRepair::getRemark,deviceRepair.getRemark())
+ .eq(DeviceRepair::getDeviceName,deviceRepair.getDeviceName())
+ .eq(DeviceRepair::getApproverId,deviceRepair.getApproverId())
+ .eq(DeviceRepair::getRepairTime,deviceRepair.getRepairTime());
+ DeviceRepair one = deviceRepairService.getOne(QueryWrapper);
+ if(ObjectUtils.isEmpty(one)){
+ return AjaxResult.error("璁惧鎶ヤ慨涓嶅瓨鍦�");
+ }
+ //鑾峰彇褰撳墠鐧诲綍閮ㄩ棬id
+ approveProcessVO.setApproveDeptId(tenantId);
+ //鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id
+ approveProcessVO.setApproveUser(loginUser.getUserId());
+ //鑾峰彇褰撳墠鏃堕棿
+ approveProcessVO.setApproveTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ approveProcessVO.setApproveType(4);
+ approveProcessVO.setApproveUserIds(deviceRepair.getApproverId().toString());
+ approveProcessVO.setApproveReason(deviceRepair.getRemark());
+ approveProcessVO.setDeviceRepairId(one.getId());
+ approveProcessVO.setMaintenancePrice(deviceRepair.getMaintenancePrice());
+ approveProcessService.addApprove(approveProcessVO);
+ }
+ return AjaxResult.success();
}
@ApiModelProperty("鏍规嵁id鏌ヨ璁惧鎶ヤ慨")
@@ -62,6 +107,17 @@
@DeleteMapping("/{ids}")
@ApiModelProperty("鍒犻櫎璁惧鎶ヤ慨")
public AjaxResult delete(@PathVariable("ids") Long[] ids) {
+ LambdaQueryWrapper<ApproveProcess> QueryWrapper = new LambdaQueryWrapper<>();
+ QueryWrapper.in(ApproveProcess::getDeviceRepairId,ids);
+ List<ApproveProcess> approveProcessList = approveProcessService.list(QueryWrapper);
+ if(!approveProcessList.isEmpty()){
+ approveProcessList.forEach(approveProcess -> {
+ if (approveProcess.getApproveStatus() != 0){
+ //鎶涘嚭寮傚父
+ throw new RuntimeException("鏈夋鍦ㄥ鐞嗕腑鐨勫鎵规祦绋嬶紝涓嶈兘鍒犻櫎");
+ }
+ });
+ }
boolean b = deviceRepairService.removeBatchByIds(Arrays.asList(ids));
if (!b) {
return AjaxResult.error("鍒犻櫎澶辫触");
diff --git a/src/main/java/com/ruoyi/device/dto/DeviceRepairDto.java b/src/main/java/com/ruoyi/device/dto/DeviceRepairDto.java
index 92cfe8c..45cf329 100644
--- a/src/main/java/com/ruoyi/device/dto/DeviceRepairDto.java
+++ b/src/main/java/com/ruoyi/device/dto/DeviceRepairDto.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -68,7 +69,7 @@
@ApiModelProperty("绉熸埛id")
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
-
-
+ @ApiModelProperty("缁翠慨浠锋牸")
+ private String maintenancePrice;
}
diff --git a/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java b/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
index 7ecb5f5..8b4dbbc 100644
--- a/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
+++ b/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
@@ -4,10 +4,9 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.Api;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import nonapi.io.github.classgraph.json.Id;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
@@ -24,9 +23,9 @@
@ApiModelProperty("璁惧鍙拌处id")
private Long deviceLedgerId;
-
+ @ApiModelProperty("璁惧鍚嶇О")
private String deviceName;
-
+ @ApiModelProperty("璁惧鍨嬪彿")
private String deviceModel;
@ApiModelProperty("鎶ヤ慨鏃堕棿")
@@ -49,7 +48,7 @@
@ApiModelProperty("缁翠慨缁撴灉")
private String maintenanceResult;
- @ApiModelProperty("鐘舵�� 0 寰呯淮淇� 1瀹岀粨 2 澶辫触")
+ @ApiModelProperty("鐘舵��:0瀹℃牳涓�,1瀹℃牳閫氳繃,2瀹℃牳澶辫触,3缁翠慨涓�,4缁翠慨閫氳繃,5缁翠慨澶辫触")
private Integer status;
@ApiModelProperty("鍒涘缓鏃堕棿")
@@ -75,6 +74,8 @@
@ApiModelProperty("绉熸埛id")
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
-
-
+ @ApiModelProperty("缁翠慨浠锋牸")
+ private BigDecimal maintenancePrice;
+ @ApiModelProperty("瀹℃壒浜篿d")
+ private Integer approverId;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java
new file mode 100644
index 0000000..d9bc6fc
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java
@@ -0,0 +1,46 @@
+package com.ruoyi.procurementrecord.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.dto.*;
+import com.ruoyi.procurementrecord.mapper.ProcurementExceptionRecordMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementExceptionRecord;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:32
+ */
+@RestController
+@Api(tags = "閲囪喘寮傚父璁板綍")
+@RequestMapping("/procurementExceptionRecord")
+public class ProcurementExceptionRecordController extends BaseController {
+
+
+ @Autowired
+ private ProcurementExceptionRecordMapper procurementExceptionRecordMapper;
+
+ @PostMapping("/add")
+ @Transactional
+ public AjaxResult add(@RequestBody ProcurementExceptionRecord procurementExceptionRecord) {
+ return AjaxResult.success(procurementExceptionRecordMapper.insert(procurementExceptionRecord));
+ }
+
+ @PostMapping("/update")
+ @Transactional
+ public AjaxResult updatePro(@RequestBody ProcurementExceptionRecord procurementExceptionRecord) {
+ return AjaxResult.success(procurementExceptionRecordMapper.updateById(procurementExceptionRecord));
+ }
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 7ea2430..1795c15 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -119,7 +119,11 @@
IPage<ProcurementPageDto> result = procurementRecordService.listPage(page, procurementDto);
return AjaxResult.success(result);
}
-
+ @GetMapping("/listReport")
+ @ApiOperation(value = "鏌ヨ搴撳瓨鍥捐〃鏁版嵁")
+ public AjaxResult listReport() {
+ return AjaxResult.success(procurementRecordService.getReportList());
+ }
@GetMapping("/listPageByProduction")
@Log(title = "鐢熶骇鍏ュ簱-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
@ApiOperation(value = "鍏ュ簱鏌ヨ")
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java
new file mode 100644
index 0000000..2396b29
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java
@@ -0,0 +1,28 @@
+package com.ruoyi.procurementrecord.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 瀛樿揣鏍哥畻淇℃伅Dto-璧勪骇鎶ヨ〃
+ */
+@Data
+public class InventoryInformationDto {
+ /**
+ * 鎬诲簱瀛樻暟閲�
+ */
+ private Integer totalInventoryCount;
+ /**
+ * 鎬诲簱瀛橀噾棰�
+ */
+ private BigDecimal totalInventoryValue;
+ /**
+ * 搴撳瓨鍙樺姩鏁伴噺
+ */
+ private Integer inventoryChangeCount;
+ /**
+ * 搴撳瓨鍙樺姩閲戦
+ */
+ private BigDecimal inventoryChangeValue;
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
index d3f35a1..98ea4eb 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
@@ -21,5 +21,6 @@
private Integer type;
private String typeName;
+ private Integer purchaseLedgerId;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementExceptionRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementExceptionRecordMapper.java
new file mode 100644
index 0000000..31dd4dc
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementExceptionRecordMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.procurementrecord.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementExceptionRecord;
+
+
+public interface ProcurementExceptionRecordMapper extends BaseMapper<ProcurementExceptionRecord> {
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
index 1b699ef..8e68c64 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -57,4 +57,5 @@
int updateManagementByCustom(ProcurementManagementUpdateDto procurementDto);
BigDecimal getProcurementAmount(Long salesProductId);
+ InventoryInformationDto getReportList();
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index fdd9c7c..3820823 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -416,6 +416,68 @@
}
@Override
+ public InventoryInformationDto getReportList() {
+ InventoryInformationDto inventoryInformationDto = new InventoryInformationDto();
+ IPage<ProcurementPageDto> procurementPageDtoIPage = this.listPage(new Page<>(1, -1), new ProcurementPageDto());
+ if(CollectionUtils.isEmpty(procurementPageDtoIPage.getRecords())){
+ return inventoryInformationDto;
+ }
+ // 璁$畻鎬诲簱瀛樻暟閲�
+ inventoryInformationDto.setTotalInventoryCount(procurementPageDtoIPage.getRecords().stream()
+ .map(ProcurementPageDto::getInboundNum0)
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
+ .intValue());
+ // 璁$畻鎬诲簱瀛橀噾棰�-ProcurementPageDto閲屾瘡涓璞$殑inboundNum0鍊煎拰taxInclusiveUnitPrice鐨勪箻绉紝涔嬪悗鐩稿姞寰楀埌鎬诲簱瀛橀噾棰�
+ BigDecimal totalInventoryValue = procurementPageDtoIPage.getRecords().stream()
+ // 杩囨护绌哄璞★紝閬垮厤NPE
+ .filter(Objects::nonNull)
+ // 澶勭悊姣忎釜瀵硅薄鐨勭┖鍊硷細null杞负0
+ .map(dto -> {
+ // 鍏ュ簱鏁伴噺锛歯ull 鈫� 0
+ BigDecimal inboundNum0 = Optional.ofNullable(dto.getInboundNum0()).orElse(BigDecimal.ZERO);
+ // 鍚◣鍗曚环锛歯ull 鈫� 0
+ BigDecimal taxInclusiveUnitPrice = Optional.ofNullable(dto.getTaxInclusiveUnitPrice()).orElse(BigDecimal.ZERO);
+ // 璁$畻鍗曚釜瀵硅薄鐨勫簱瀛橀噾棰濓細鏁伴噺 脳 鍚◣鍗曚环
+ return inboundNum0.multiply(taxInclusiveUnitPrice);
+ })
+ // 鎵�鏈夊崟涓噾棰濇眰鍜岋紝鍒濆鍊间负0
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ // 璁剧疆鎬诲簱瀛橀噾棰�
+ inventoryInformationDto.setTotalInventoryValue(totalInventoryValue);
+ // 璁$畻搴撳瓨鍙樺姩鏁伴噺-ProcurementPageDto閲屾瘡涓璞$殑inboundNum鍊煎拰inboundNum0鍊肩殑宸�硷紝涔嬪悗鐩稿姞寰楀埌搴撳瓨鍙樺姩鏁伴噺
+ inventoryInformationDto.setInventoryChangeCount(procurementPageDtoIPage.getRecords().stream()
+ // 杩囨护绌哄璞★紝閬垮厤NPE
+ .filter(Objects::nonNull)
+ // 澶勭悊姣忎釜瀵硅薄鐨勭┖鍊硷細null杞负0
+ .map(dto -> {
+ // 鍏ュ簱鏁伴噺锛歯ull 鈫� 0
+ BigDecimal inboundNum = Optional.ofNullable(dto.getInboundNum()).orElse(BigDecimal.ZERO);
+ // 寰呭嚭搴撴暟閲忥細null 鈫� 0
+ BigDecimal inboundNum0 = Optional.ofNullable(dto.getInboundNum0()).orElse(BigDecimal.ZERO);
+ // 璁$畻鍗曚釜瀵硅薄鐨勫簱瀛樺彉鍔ㄦ暟閲忥細鏁伴噺 - 寰呭嚭搴撴暟閲�
+ return inboundNum.subtract(inboundNum0);
+ })
+ // 鎵�鏈夊崟涓彉鍔ㄦ暟閲忔眰鍜岋紝鍒濆鍊间负0
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
+ .intValue());
+ // 璁$畻搴撳瓨鍙樺姩閲戦ProcurementPageDto閲屾瘡涓璞$殑taxInclusiveTotalPrice鍊肩殑鍜�
+ BigDecimal inventoryChangeValue = procurementPageDtoIPage.getRecords().stream()
+ // 杩囨护绌哄璞★紝閬垮厤NPE
+ .filter(Objects::nonNull)
+ // 澶勭悊姣忎釜瀵硅薄鐨勭┖鍊硷細null杞负0
+ .map(dto -> {
+ // 鍚◣鎬讳环锛歯ull 鈫� 0
+ BigDecimal taxInclusiveTotalPrice = Optional.ofNullable(dto.getTaxInclusiveTotalPrice()).orElse(BigDecimal.ZERO);
+ // 璁$畻鍗曚釜瀵硅薄鐨勫叆搴撳簱瀛橀噾棰濓細鍚◣鎬讳环
+ return taxInclusiveTotalPrice;
+ })
+ // 鎵�鏈夊崟涓彉鍔ㄩ噾棰濇眰鍜岋紝鍒濆鍊间负0
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ // 璁剧疆搴撳瓨鍙樺姩閲戦
+ inventoryInformationDto.setInventoryChangeValue(inventoryChangeValue.subtract(totalInventoryValue));
+ return inventoryInformationDto;
+ }
+ @Override
public IPage<ProcurementPageDto> listPageByProduction(Page page, ProcurementPageDto procurementDto) {
IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPageByProduction(page, procurementDto);
List<ProcurementPageDto> procurementPageDtos = procurementPageDtoIPage.getRecords();
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index fca4277..3e120d1 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -1,5 +1,6 @@
package com.ruoyi.purchase.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -11,6 +12,8 @@
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.purchase.service.IPurchaseLedgerService;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
import com.ruoyi.sales.service.ISalesLedgerService;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@@ -19,6 +22,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 閲囪喘鍙拌处Controller
@@ -33,6 +37,7 @@
private IPurchaseLedgerService purchaseLedgerService;
private ISalesLedgerService salesLedgerService;
+ private ISalesLedgerProductService salesLedgerProductService;
/**
* 鏌ヨ閲囪喘鍙拌处鍒楄〃
@@ -77,7 +82,41 @@
public AjaxResult addOrEditPurchase(@RequestBody PurchaseLedgerDto purchaseLedgerDto) throws IOException {
return toAjax(purchaseLedgerService.addOrEditPurchase(purchaseLedgerDto));
}
+ /**
+ * 鏂板閲囪喘妯℃澘
+ */
+ @PostMapping("/addPurchaseTemplate")
+ public AjaxResult addPurchaseTemplate(@RequestBody PurchaseLedgerDto purchaseLedgerDto) throws IOException {
+ return toAjax(purchaseLedgerService.addPurchaseTemplate(purchaseLedgerDto));
+ }
+ /**
+ * 鏌ヨ閲囪喘妯℃澘
+ */
+ @GetMapping("/getPurchaseTemplateList")
+ public AjaxResult getPurchaseTemplateList() {
+ PurchaseLedgerDto purchaseLedgerDto = new PurchaseLedgerDto();
+ purchaseLedgerDto.setApprovalStatus(3);
+ IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(new Page(1, -1), purchaseLedgerDto);
+ List<PurchaseLedgerDto> purchaseLedgers = purchaseLedgerDtoIPage.getRecords();
+ purchaseLedgers.forEach(purchaseLedgerDto1 -> {
+ LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedgerDto1.getId())
+ .eq(SalesLedgerProduct::getType, 2);
+ List<SalesLedgerProduct> list = salesLedgerProductService.list(queryWrapper);
+ if (!list.isEmpty()) {
+ purchaseLedgerDto1.setProductData(list);
+ }
+ });
+ return AjaxResult.success(purchaseLedgers);
+ }
+ /**
+ * 淇敼閲囪喘鍙拌处瀹℃壒鐘舵��
+ */
+ @PostMapping("/updateApprovalStatus")
+ public AjaxResult addOrEditPurchase(@RequestBody PurchaseLedger purchaseLedger){
+ return toAjax(purchaseLedgerService.updateById(purchaseLedger));
+ }
/**
* 鏌ヨ閲囪喘鍙拌处鍜屼骇鍝佺埗瀛愬垪琛�
*/
@@ -149,7 +188,10 @@
*/
@GetMapping("/listPage")
public AjaxResult listPage(Page page, PurchaseLedgerDto purchaseLedger) {
- return AjaxResult.success(purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger));
+ IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger);
+ //杩囨护鎺塧pprovalStatus=3鐨勮褰�
+ purchaseLedgerDtoIPage.getRecords().removeIf(purchaseLedgerDto -> purchaseLedgerDto.getApprovalStatus() == 3);
+ return AjaxResult.success(purchaseLedgerDtoIPage);
}
@ApiOperation("鐢熸垚閲囪喘搴忓垪鍙�")
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index 7d1e9e5..4808080 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -40,6 +40,11 @@
*/
@Excel(name = "渚涘簲鍟嗗悕绉�")
private String supplierName;
+ /**
+ * 鏄惁鐧藉悕鍗�
+ */
+ @Excel(name = "鏄惁鐧藉悕鍗�")
+ private Integer isWhite;
/**
* 褰曞叆浜哄鍚峣d
@@ -180,5 +185,10 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
-
+ @ApiModelProperty("瀹℃壒鐘舵��")
+ private Integer approvalStatus;
+ @ApiModelProperty(value = "妯℃澘鍚嶇О")
+ private String templateName;
+ @ApiModelProperty(value = "瀹℃壒浜篿d")
+ private Integer approverId;
}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
index 7b7ad72..838976d 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -148,10 +148,14 @@
@TableField(exist = false)
private Integer type;
-
-
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty("瀹℃壒鐘舵��")
+ private Integer approvalStatus;
+ @ApiModelProperty(value = "妯℃澘鍚嶇О")
+ private String templateName;
+ @ApiModelProperty(value = "瀹℃壒浜篿d")
+ private Integer approverId;
}
diff --git a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
index 3979810..c0eb379 100644
--- a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -39,4 +39,6 @@
List<InvoiceRegistrationProduct> getProductBySalesNo(Long id);
String getPurchaseNo();
+
+ int addPurchaseTemplate(PurchaseLedgerDto purchaseLedgerDto) throws IOException;
}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index bc9f375..7453caf 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -122,7 +122,49 @@
}
return purchaseLedgerMapper.selectList(queryWrapper);
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int addPurchaseTemplate(PurchaseLedgerDto purchaseLedgerDto)throws IOException {
+ //褰曞叆浜�
+ SysUser sysUser = userMapper.selectUserById(purchaseLedgerDto.getRecorderId());
+ SupplierManage supplierManage = supplierManageMapper.selectById(purchaseLedgerDto.getSupplierId());
+ PurchaseLedger purchaseLedger = new PurchaseLedger();
+// BeanUtils.copyProperties(purchaseLedger,purchaseLedgerDto);
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if(ObjectUtils.isNotEmpty(loginUser) && null != loginUser.getTenantId()) {
+ purchaseLedger.setTenantId(loginUser.getTenantId());
+ }
+ purchaseLedger.setPaymentMethod(purchaseLedgerDto.getPaymentMethod());
+ purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId());
+ purchaseLedger.setSupplierId(purchaseLedgerDto.getSupplierId());
+ purchaseLedger.setTemplateName(purchaseLedgerDto.getTemplateName());
+// purchaseLedger.setSalesLedgerPId(purchaseLedgerDto.getSalesLedgerId());
+ purchaseLedger.setApprovalStatus(3);
+ purchaseLedger.setSupplierName(supplierManage.getSupplierName());
+ purchaseLedger.setRecorderName(sysUser.getNickName());
+ purchaseLedger.setPhoneNumber(sysUser.getPhonenumber());
+ purchaseLedger.setPurchaseContractNumber(UUID.randomUUID().toString().replaceAll("-", ""));
+ purchaseLedger.setEntryDate(Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant()));
+ int insert = purchaseLedgerMapper.insert(purchaseLedger);
+
+ LambdaQueryWrapper<PurchaseLedger> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(PurchaseLedger::getSupplierName, purchaseLedger.getSupplierName())
+ .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedger.getPurchaseContractNumber())
+ .eq(PurchaseLedger::getApprovalStatus,3);
+ PurchaseLedger purchaseLedger1 = purchaseLedgerMapper.selectOne(queryWrapper);
+
+ if(ObjectUtils.isNotEmpty(purchaseLedgerDto.getProductData())) {
+ // 4. 澶勭悊瀛愯〃鏁版嵁
+ List<SalesLedgerProduct> salesLedgerProductList = purchaseLedgerDto.getProductData();
+ salesLedgerProductList.forEach(salesLedgerProduct -> {
+ salesLedgerProduct.setSalesLedgerId(purchaseLedger1.getId());
+ salesLedgerProduct.setType(2);
+ });
+ salesLedgerProductList.forEach(salesLedgerProductMapper::insert);
+ }
+ return insert;
+ }
@Override
@Transactional(rollbackFor = Exception.class)
public int addOrEditPurchase(PurchaseLedgerDto purchaseLedgerDto) throws IOException {
@@ -169,7 +211,7 @@
PurchaseLedger purchaseLedgerDB = purchaseLedgerMapper.selectById(purchaseLedger.getId());
List<AccountExpense> accountExpenseDBs = accountExpenseService.getByInvoiceNumberList(purchaseLedger.getPurchaseContractNumber());
if (!CollectionUtils.isEmpty(accountExpenseDBs)) {
- accountExpenseDBs.forEach(accountExpenseDB -> {
+ accountExpenseDBs.forEach(accountExpenseDB ->{
accountExpenseDB.setExpenseDate(purchaseLedgerDB.getEntryDate());
accountExpenseDB.setExpenseType("0");
accountExpenseDB.setSupplierName(purchaseLedgerDB.getSupplierName());
@@ -383,7 +425,7 @@
@Override
public int deletePurchaseLedgerByIds(Long[] ids) {
if (ids == null || ids.length == 0) {
- throw new BaseException("璇烽�変腑鑷冲皯涓�鏉℃暟鎹�");
+ throw new BaseException("璇烽�変腑鑷冲皯涓�鏉℃暟鎹�");
}
// 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︿骇鍝�
LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
@@ -392,11 +434,11 @@
salesLedgerProductMapper.delete(queryWrapper);
// 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︾殑鏉ョエ鐧昏
LambdaQueryWrapper<TicketRegistration> ticketRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>();
- ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getPurchaseLedgerId, ids);
+ ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getSalesLedgerId,ids);
ticketRegistrationMapper.delete(ticketRegistrationLambdaQueryWrapper);
// 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︾殑鏉ョエ鐧昏璁板綍
LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
- productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId, ids);
+ productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId,ids);
productRecordMapper.delete(productRecordLambdaQueryWrapper);
// 鎵归噺鍒犻櫎浠樻鐧昏
LambdaQueryWrapper<PaymentRegistration> paymentRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -439,7 +481,7 @@
// 3.鏌ヨ涓婁紶鏂囦欢
LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>();
salesLedgerFileWrapper.eq(CommonFile::getCommonId, purchaseLedger.getId())
- .eq(CommonFile::getType, FileNameType.PURCHASE.getValue());
+ .eq(CommonFile::getType,FileNameType.PURCHASE.getValue());
List<CommonFile> salesLedgerFiles = commonFileMapper.selectList(salesLedgerFileWrapper);
// 4. 杞崲 DTO
diff --git a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
new file mode 100644
index 0000000..047cb37
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
@@ -0,0 +1,77 @@
+package com.ruoyi.sales.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.ShipmentApproval;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
+import com.ruoyi.sales.service.ShipmentApprovalService;
+import com.ruoyi.sales.service.ShippingInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@RestController
+@RequestMapping("/shipmentApproval")
+@Api(tags = "鍙戣揣瀹℃壒绠$悊")
+public class ShipmentApprovalController extends BaseController {
+
+ @Autowired
+ private ShipmentApprovalService shipmentApprovalService;
+ @Autowired
+ private ShipmentApprovalMapper shipmentApprovalMapper;
+
+ @Autowired
+ private ISalesLedgerProductService salesLedgerProductService;
+
+ @GetMapping("/listPage")
+ @ApiOperation("鍙戣揣瀹℃壒鍒楄〃")
+ public AjaxResult listPage(Page page, ShipmentApproval req) {
+ IPage<ShipmentApproval> listPage = shipmentApprovalService.listPage(page,req);
+ return AjaxResult.success(listPage);
+ }
+
+ @PostMapping("/update")
+ @ApiOperation("鍙戣揣瀹℃壒,鏇存柊鍙戣揣瀹℃壒鐘舵��")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult update(@RequestBody ShipmentApproval req) {
+ ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId());
+ if (shipmentApproval == null) {
+ return AjaxResult.error("鍙戣揣瀹℃壒涓嶅瓨鍦�");
+ }
+
+ shipmentApproval.setApproveStatus(req.getApproveStatus());
+ boolean update = shipmentApprovalService.updateById(shipmentApproval);
+ if(update){
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
+ salesLedgerProduct.setApproveStatus(req.getApproveStatus());
+ salesLedgerProductService.updateById(salesLedgerProduct);
+ }
+ return update ? AjaxResult.success() : AjaxResult.error();
+ }
+
+
+ /**
+ * 瀵煎嚭鍙戣揣淇℃伅绠$悊
+ */
+ @PostMapping("/export")
+ @ApiOperation("瀵煎嚭鍙戣揣瀹℃壒")
+ public void export(HttpServletResponse response) {
+ List<ShipmentApproval> list = shipmentApprovalService.list(null);
+ ExcelUtil<ShipmentApproval> util = new ExcelUtil<ShipmentApproval>(ShipmentApproval.class);
+ util.exportExcel(response, list, "鍙戣揣瀹℃壒");
+ }
+
+}
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index 56b3e15..c498b93 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -1,5 +1,6 @@
package com.ruoyi.sales.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -7,13 +8,20 @@
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.ShipmentApproval;
import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
+import com.ruoyi.sales.service.ISalesLedgerService;
import com.ruoyi.sales.service.ShippingInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -30,6 +38,10 @@
@Autowired
private ShippingInfoService shippingInfoService;
+ @Autowired
+ private ShipmentApprovalMapper shipmentApprovalMapper;
+ @Autowired
+ private ISalesLedgerProductService salesLedgerProductService;
@GetMapping("/listPage")
@@ -41,8 +53,33 @@
@PostMapping("/add")
@ApiOperation("娣诲姞鍙戣揣淇℃伅")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult add(@RequestBody ShippingInfo req) {
+ LambdaQueryWrapper<ShippingInfo> wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(ShippingInfo::getSalesLedgerId, req.getSalesLedgerId());
+ wrapper.eq(ShippingInfo::getSalesLedgerProductId, req.getSalesLedgerProductId());
+ List<ShippingInfo> list = shippingInfoService.list(wrapper);
+ if(!CollectionUtils.isEmpty(list)){
+ return AjaxResult.error("鍙戣揣淇℃伅宸插瓨鍦�");
+ }
boolean save = shippingInfoService.save(req);
+ if(save){
+ ShippingInfo shippingInfo = shippingInfoService.getOne(wrapper);
+ ShipmentApproval shipmentApproval = new ShipmentApproval();
+ shipmentApproval.setSalesLedgerId(req.getSalesLedgerId());
+ shipmentApproval.setSalesLedgerProductId(req.getSalesLedgerProductId());
+ shipmentApproval.setApproveUserId(req.getApproverId());
+ shipmentApproval.setApproveStatus(2);
+ shipmentApproval.setShippingInfoId(shippingInfo.getId());
+ shipmentApprovalMapper.insert(shipmentApproval);
+
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(req.getSalesLedgerProductId());
+ if(salesLedgerProduct != null){
+ salesLedgerProduct.setApproveStatus(2);
+ salesLedgerProductService.updateById(salesLedgerProduct);
+ }
+
+ }
return save ? AjaxResult.success() : AjaxResult.error();
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
index 69b2b7b..0ccce79 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
@@ -2,6 +2,9 @@
import com.ruoyi.common.config.MyBaseMapper;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* 浜у搧淇℃伅Mapper鎺ュ彛
@@ -10,4 +13,5 @@
* @date 2025-05-08
*/
public interface SalesLedgerProductMapper extends MyBaseMapper<SalesLedgerProduct> {
+ List<SalesLedgerProduct> selectSalesLedgerProductList(@Param("salesLedgerProduct") SalesLedgerProduct salesLedgerProduct);
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java b/src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java
new file mode 100644
index 0000000..c3bf397
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.sales.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.sales.pojo.ShipmentApproval;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+public interface ShipmentApprovalMapper extends BaseMapper<ShipmentApproval> {
+ IPage<ShipmentApproval> listPage(Page page,@Param("req") ShipmentApproval req);
+
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 35b7488..955f4da 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -140,5 +140,9 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鐢熶骇鐘舵��")
+ private String productionStatus = "鏈紑濮�";
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 8eacb60..f35b916 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -12,6 +12,7 @@
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
+import java.util.Date;
/**
* 浜у搧淇℃伅瀵硅薄 sales_ledger_product
@@ -184,4 +185,28 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "鐧昏鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime registerDate;
+ /**
+ * 鍙戣揣杞︾墝鍙�
+ */
+ @Excel(name = "鍙戣揣杞︾墝鍙�")
+ @TableField(exist = false)
+ private String shippingCarNumber;
+
+ /**
+ * 鍙戣揣鏃ユ湡
+ */
+ @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+ @TableField(exist = false)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date shippingDate;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鐢熶骇鐘舵��")
+ private String productionStatus = "鏈紑濮�";
+ /**
+ * 鍙戣揣瀹℃壒鐘舵��
+ */
+// @TableField(exist = false)
+ @ApiModelProperty(value = "瀹℃壒鐘舵��")
+ private Integer approveStatus;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java b/src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java
new file mode 100644
index 0000000..41a0d34
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java
@@ -0,0 +1,352 @@
+package com.ruoyi.sales.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@TableName("shipment_approval")
+public class ShipmentApproval {
+ @TableId(type = IdType.AUTO)
+ private Long id;
+ @ApiModelProperty(value = "鍙戣揣淇℃伅id")
+ private Long shippingInfoId;
+ @ApiModelProperty(value = "閿�鍞彴璐d")
+ private Long salesLedgerId;
+ @ApiModelProperty(value = "閿�鍞姤浠蜂骇鍝佽〃id")
+ private Long salesLedgerProductId;
+ @ApiModelProperty(value = "鐢宠閮ㄩ棬id")
+ private Long approveDeptId;
+
+ @ApiModelProperty(value = "鐢宠閮ㄩ棬鍚嶇О")
+ @Excel(name = "鐢宠閮ㄩ棬")
+ private String approveDeptName;
+ @ApiModelProperty(value = "瀹℃壒鐢ㄦ埛id")
+ private Integer approveUserId;
+ @ApiModelProperty(value = "瀹℃壒鐢ㄦ埛鍚嶇О")
+ @Excel(name = "瀹℃壒鐢ㄦ埛")
+ private String approveUserNames;
+
+ /**
+ * 瀹℃壒鐘舵��
+ */
+ @ApiModelProperty(value = "瀹℃壒鐘舵�侊細0鏈嚭搴�,1宸插嚭搴�,2寰呭鏍�,3瀹℃牳瀹屾垚,4瀹℃牳澶辫触")
+ @Excel(name = "瀹℃壒鐘舵��", readConverterExp = "0=鏈嚭搴�,1=宸插嚭搴�,2=寰呭鏍�,3=瀹℃牳瀹屾垚,4=瀹℃牳澶辫触")
+ private Integer approveStatus;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+ @TableField(exist = false)
+ private Date shippingDate;
+
+ @Excel(name = "鍙戣揣杞︾墝鍙�")
+ @TableField(exist = false)
+ private String shippingCarNumber;
+
+ /**
+ * 棰勮鏁伴噺
+ */
+
+ @TableField(exist = false)
+ private BigDecimal warnNum;
+
+ /**
+ * 浜у搧澶х被
+ */
+ @Excel(name = "浜у搧澶х被")
+ @TableField(exist = false)
+ private String productCategory;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ @Excel(name = "瑙勬牸鍨嬪彿")
+ @TableField(exist = false)
+ private String specificationModel;
+
+ /**
+ * 鍗曚綅
+ */
+ @Excel(name = "鍗曚綅")
+ @TableField(exist = false)
+ private String unit;
+
+ /**
+ * 鏁伴噺
+ */
+ @Excel(name = "鏁伴噺")
+ @TableField(exist = false)
+ private BigDecimal quantity;
+ @Excel(name = "鏈�浣庡簱瀛樻暟閲�")
+ @TableField(exist = false)
+ private BigDecimal minStock;
+ /**
+ * 绋庣巼
+ */
+ @Excel(name = "绋庣巼")
+ @TableField(exist = false)
+ private BigDecimal taxRate;
+
+ /**
+ * 鍚◣鍗曚环
+ */
+ @Excel(name = "鍚◣鍗曚环")
+ @TableField(exist = false)
+ private BigDecimal taxInclusiveUnitPrice;
+
+ /**
+ * 鍚◣鎬讳环
+ */
+ @Excel(name = "鍚◣鎬讳环")
+ @TableField(exist = false)
+ private BigDecimal taxInclusiveTotalPrice;
+
+ /**
+ * 涓嶅惈绋庢�讳环
+ */
+ @Excel(name = "涓嶅惈绋庢�讳环")
+ @TableField(exist = false)
+ private BigDecimal taxExclusiveTotalPrice;
+
+ /**
+ * 鍙戠エ绫诲瀷
+ */
+
+ @TableField(exist = false)
+ private String invoiceType;
+
+ /**
+ * 鍙拌处绫诲瀷 1.閿�鍞� 2锛岄噰璐�
+ */
+ @TableField(exist = false)
+ private Integer type;
+
+ /**
+ * 鏈鏉ョエ鏁�
+ */
+ @TableField(exist = false)
+ private BigDecimal ticketsNum;
+
+ /**
+ * 鏈鏉ョエ閲戦(鍏�)
+ */
+ @TableField(exist = false)
+ private BigDecimal ticketsAmount;
+
+ /**
+ * 鏈潵绁ㄦ暟
+ */
+ @TableField(exist = false)
+ private BigDecimal futureTickets;
+
+ /**
+ * 鏈潵绁ㄩ噾棰�(鍏�)
+ */
+ @TableField(exist = false)
+ private BigDecimal futureTicketsAmount;
+
+ @ApiModelProperty(value = "寮�绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal invoiceNum;
+
+ @ApiModelProperty(value = "鏈紑绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal noInvoiceNum;
+
+ @ApiModelProperty(value = "寮�绁ㄩ噾棰�")
+ @TableField(exist = false)
+ private BigDecimal invoiceAmount;
+
+ @ApiModelProperty(value = "鏈紑绁ㄩ噾棰�")
+ @TableField(exist = false)
+ private BigDecimal noInvoiceAmount;
+
+ @ApiModelProperty(value = "鏈寮�绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal currentInvoiceNum;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鏈寮�绁ㄩ噾棰�")
+ private BigDecimal currentInvoiceAmount;
+
+ /**
+ * 浜у搧id
+ */
+ @TableField(exist = false)
+ private Long productId;
+
+ /**
+ * 浜у搧瑙勬牸id
+ */
+ @TableField(exist = false)
+ private Long productModelId;
+
+ @ApiModelProperty(value = "鍒濆鏈紑绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal originalNoInvoiceNum;
+
+ @ApiModelProperty(value = "涓存椂鏈紑绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal tempNoInvoiceNum;
+
+ @ApiModelProperty(value = "涓存椂鏈紑绁ㄩ噾棰�")
+ @TableField(exist = false)
+ private BigDecimal tempnoInvoiceAmount;
+
+ @ApiModelProperty(value = "涓存椂鏈潵绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal tempFutureTickets;
+
+ @ApiModelProperty(value = "涓存椂鏈潵绁ㄩ噾棰�")
+ @TableField(exist = false)
+ private BigDecimal tempFutureTicketsAmount;
+
+ @ApiModelProperty("鐧昏浜�")
+ @TableField(exist = false)
+ private String register;
+
+ @ApiModelProperty("鐧昏鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "鐧昏鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ @TableField(exist = false)
+ private LocalDateTime registerDate;
+ /**
+ * 閿�鍞悎鍚屽彿
+ */
+ @Excel(name = "閿�鍞悎鍚屽彿")
+ @TableField(exist = false)
+ private String salesContractNo;
+
+ /**
+ * 瀹㈡埛鍚堝悓鍙�
+ */
+ @Excel(name = "瀹㈡埛鍚堝悓鍙�")
+ @TableField(exist = false)
+ private String customerContractNo;
+
+
+ /**
+ * 椤圭洰鍚嶇О
+ */
+ @Excel(name = "椤圭洰鍚嶇О")
+ @TableField(exist = false)
+ private String projectName;
+
+ /**
+ * 褰曞叆鏃ユ湡
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @TableField(exist = false)
+ private Date entryDate;
+
+ /**
+ * 涓氬姟鍛�
+ */
+ @Excel(name = "涓氬姟鍛�")
+ @TableField(exist = false)
+ private String salesman;
+
+ @TableField(exist = false)
+ private Long customerId;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ @Excel(name = "瀹㈡埛鍚嶇О")
+ @TableField(exist = false)
+ private String customerName;
+
+ /**
+ * 褰曞叆浜�
+ */
+ @TableField(exist = false)
+ private String entryPerson;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "褰曞叆浜�")
+ @Excel(name = "褰曞叆浜�")
+ private String entryPersonName;
+
+ /**
+ * 澶囨敞
+ */
+ @Excel(name = "澶囨敞")
+ @TableField(exist = false)
+ private String remarks;
+
+ /**
+ * 闄勪欢鏉愭枡锛屽瓨鍌ㄦ枃浠跺悕绛夌浉鍏充俊鎭�
+ */
+ @TableField(exist = false)
+ private String attachmentMaterials;
+
+
+ /**
+ * 鍚堝悓閲戦锛堜骇鍝佸惈绋庢�讳环锛�
+ */
+ @Excel(name = "鍚堝悓閲戦")
+ @TableField(exist = false)
+ private BigDecimal contractAmount;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鏈紑绁ㄩ噾棰�(鍏�)")
+ @Excel(name = "鏈紑绁ㄩ噾棰�")
+ private BigDecimal noInvoiceAmountTotal = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "绛捐鏃ユ湡")
+ @TableField(exist = false)
+ private LocalDate executionDate;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "宸插紑绁ㄩ噾棰�(鍏�)")
+ @Excel(name = "宸插紑绁ㄩ噾棰�")
+ private BigDecimal invoiceTotal = BigDecimal.ZERO;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鍥炴閲戦")
+ private BigDecimal receiptPaymentAmountTotal = BigDecimal.ZERO;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "寰呭洖娆鹃噾棰�")
+ private BigDecimal noReceiptAmount = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "浠樻鏂瑰紡")
+ @TableField(exist = false)
+ private String paymentMethod;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鐢熶骇鐘舵��")
+ private String productionStatus = "鏈紑濮�";
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
index 3f80dc0..fce7148 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -23,7 +23,8 @@
@ApiModelProperty(value = "閿�鍞彴璐d")
private Long salesLedgerId;
-
+ @ApiModelProperty(value = "閿�鍞姤浠蜂骇鍝佽〃id")
+ private Long salesLedgerProductId;
@TableField(exist = false)
@ApiModelProperty(value = "閿�鍞悎鍚屽彿")
@Excel(name = "閿�鍞悎鍚屽彿")
@@ -64,5 +65,8 @@
@ApiModelProperty(value = "绉熸埛ID")
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
+ @ApiModelProperty(value = "瀹℃壒浜篿d")
+ @TableField(exist = false)
+ private Integer approverId;
}
diff --git a/src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java b/src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java
new file mode 100644
index 0000000..6af2c00
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.sales.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.sales.pojo.ShipmentApproval;
+import com.ruoyi.sales.pojo.ShippingInfo;
+
+
+public interface ShipmentApprovalService extends IService<ShipmentApproval>{
+ IPage<ShipmentApproval> listPage(Page page, ShipmentApproval req);
+
+}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 515bee2..1dafbe4 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -12,10 +12,12 @@
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ISalesLedgerProductService;
import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -24,10 +26,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -66,11 +65,11 @@
@Override
public List<SalesLedgerProduct> selectSalesLedgerProductList(SalesLedgerProduct salesLedgerProduct) {
- LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId())
- .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType());
- List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(queryWrapper);
- if (!CollectionUtils.isEmpty(salesLedgerProducts)) {
+// LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
+// queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId())
+// .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType());
+ List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectSalesLedgerProductList(salesLedgerProduct);
+ if(!CollectionUtils.isEmpty(salesLedgerProducts)){
InvoiceRegistrationProductDto invoiceRegistrationProductDto = new InvoiceRegistrationProductDto();
invoiceRegistrationProductDto.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId().intValue());
List<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoList = invoiceRegistrationProductMapper.invoiceRegistrationProductList(invoiceRegistrationProductDto);
@@ -80,8 +79,8 @@
BigDecimal invoiceNum = BigDecimal.ZERO;
BigDecimal invoiceAmount = BigDecimal.ZERO;
for (InvoiceRegistrationProductDto registrationProductDto : invoiceRegistrationProductDtoList) {
- if (ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()) {
- invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum());
+ if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){
+ invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum());
invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount());
}
}
@@ -104,7 +103,7 @@
// 1. 鍏堟煡璇㈣鍒犻櫎鐨勫瓙琛ㄨ褰曪紝鑾峰彇瀵瑰簲鐨� salesLedgerId
List<SalesLedgerProduct> deletedProducts = salesLedgerProductMapper.selectBatchIds(Arrays.asList(ids));
if (deletedProducts.isEmpty()) {
- return 0;
+ return 0; // 娌℃湁鍙垹闄ょ殑鏁版嵁
}
// 鍙兘灞炰簬澶氫釜涓昏〃
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java
new file mode 100644
index 0000000..0df4c34
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java
@@ -0,0 +1,32 @@
+package com.ruoyi.sales.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.ShipmentApproval;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.ShipmentApprovalService;
+import com.ruoyi.sales.service.ShippingInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :yys
+ * @date : 2025/10/22 9:33
+ */
+@Service
+@Slf4j
+public class ShipmentApprovalServiceImpl extends ServiceImpl<ShipmentApprovalMapper, ShipmentApproval> implements ShipmentApprovalService {
+
+ @Autowired
+ private ShipmentApprovalMapper shipmentApprovalMapper;
+
+ @Override
+ public IPage<ShipmentApproval> listPage(Page page, ShipmentApproval req) {
+ IPage<ShipmentApproval> listPage = shipmentApprovalMapper.listPage(page, req);
+ return listPage;
+ }
+}
diff --git a/src/main/resources/mapper/basic/SupplierManageFileMapper.xml b/src/main/resources/mapper/basic/SupplierManageFileMapper.xml
new file mode 100644
index 0000000..265c9a4
--- /dev/null
+++ b/src/main/resources/mapper/basic/SupplierManageFileMapper.xml
@@ -0,0 +1,9 @@
+<?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.basic.mapper.SupplierManageFileMapper">
+ <select id="supplierManageFileListPage" resultType="com.ruoyi.basic.pojo.SupplierManageFile">
+ select *
+ from supplier_manage_file
+ where supplier_id = #{supplierManageFile.supplierId}
+ </select>
+</mapper>
diff --git a/src/main/resources/mapper/basic/SupplierManageMapper.xml b/src/main/resources/mapper/basic/SupplierManageMapper.xml
index 9e65903..ba7fac3 100644
--- a/src/main/resources/mapper/basic/SupplierManageMapper.xml
+++ b/src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -22,12 +22,16 @@
T1.update_time,
T1.update_user,
T1.tenant_id,
+ T1.is_white,
T2.nick_name AS maintainUserName
FROM supplier_manage T1
LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id
<where>
<if test="supplierManageDto.supplierName != null and supplierManageDto.supplierName != '' ">
AND T1.supplier_name LIKE CONCAT('%',#{supplierManageDto.supplierName},'%')
+ </if>
+ <if test="supplierManageDto.isWhite != null">
+ AND T1.is_white = #{supplierManageDto.isWhite}
</if>
</where>
</select>
@@ -50,6 +54,7 @@
T1.update_time,
T1.update_user,
T1.tenant_id,
+ T1.is_white,
T2.nick_name AS maintainUserName
FROM supplier_manage T1
LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id
@@ -57,6 +62,9 @@
<if test="supplierManageDto.supplierName != null and supplierManageDto.supplierName != '' ">
AND T1.supplier_name LIKE CONCAT('%',#{supplierManageDto.supplierName},'%')
</if>
+ <if test="supplierManageDto.isWhite != null">
+ AND T1.is_white = #{supplierManageDto.isWhite}
+ </if>
</where>
</select>
diff --git a/src/main/resources/mapper/device/DeviceRepairMapper.xml b/src/main/resources/mapper/device/DeviceRepairMapper.xml
index d093980..8969d0c 100644
--- a/src/main/resources/mapper/device/DeviceRepairMapper.xml
+++ b/src/main/resources/mapper/device/DeviceRepairMapper.xml
@@ -14,6 +14,7 @@
dr.maintenance_name,
dr.maintenance_time,
dr.maintenance_result,
+ dr.maintenance_price,
dr.status,
dr.create_time,
dr.update_time,
@@ -59,6 +60,7 @@
dr.maintenance_name,
dr.maintenance_time,
dr.maintenance_result,
+ dr.maintenance_price,
dr.status,
dr.create_time,
dr.update_time,
diff --git a/src/main/resources/mapper/measuringinstrumentledger/SparePartsMapper.xml b/src/main/resources/mapper/measuringinstrumentledger/SparePartsMapper.xml
index 2968e9a..611d51e 100644
--- a/src/main/resources/mapper/measuringinstrumentledger/SparePartsMapper.xml
+++ b/src/main/resources/mapper/measuringinstrumentledger/SparePartsMapper.xml
@@ -2,11 +2,12 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.measuringinstrumentledger.mapper.SparePartsMapper">
<select id="listPage" resultType="com.ruoyi.measuringinstrumentledger.dto.SparePartsDto">
- select sp.*,sp1.name as parentName from spare_parts sp
+ select sp.*,sp1.name as parentName
+ from spare_parts sp
left join spare_parts sp1 on sp1.id = sp.parent_id
<where>
- <if test="spareParts.name != null">
- and name like concat('%',#{spareParts.name},'%')
+ <if test="spareParts.name != null and spareParts.name != ''">
+ and sp.name like concat('%',#{spareParts.name},'%')
</if>
</where>
</select>
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementExceptionRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementExceptionRecordMapper.xml
new file mode 100644
index 0000000..3363ce7
--- /dev/null
+++ b/src/main/resources/mapper/procurementrecord/ProcurementExceptionRecordMapper.xml
@@ -0,0 +1,5 @@
+<?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.procurementrecord.mapper.ProcurementExceptionRecordMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index 6119edd..cffeca8 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -137,6 +137,7 @@
sum(t1.total_price) as totalPrice,
sum(t1.inbound_num) as inboundNum,
sum(t1.inbound_num) as inboundNum0,
+ t1.inbound_num as totalInboundNum,
t1.create_time,
t1.update_time,
t1.create_by,
@@ -171,7 +172,7 @@
and t1.create_time <= #{req.endDate}
</if>
</where>
- group by t2.product_category,t2.specification_model,t1.unit_price
+ group by t3.supplier_name,t2.product_category,t2.specification_model,t1.unit_price
order by t1.create_time desc
</select>
<select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
index 5c338d7..2c0cba4 100644
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -28,10 +28,10 @@
left join product_model pm on pm.id = pr.product_model_id
WHERE type = 2
<if test="c.salesContractNo != null and c.salesContractNo != ''">
- and sl.sales_contract_no = #{c.salesContractNo}
+ and sl.sales_contract_no like concat('%',#{c.salesContractNo},'%')
</if>
<if test="c.supplierName != null and c.supplierName != ''">
- and pl.supplier_name = #{c.supplierName}
+ and pl.supplier_name like concat('%',#{c.supplierName},'%')
</if>
<if test="c.createdAtStart != null and c.createdAtStart != ''">
and pr.created_at >= date_format(#{c.createdAtStart},'%Y-%m-%d hh:mm:ss')
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 9368d70..b513ac1 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -14,21 +14,30 @@
pl.id,
pl.purchase_contract_number ,
pl.sales_contract_no,
+ pl.supplier_id,
pl.supplier_name,
pl.project_name,
pl.contract_amount,
sum(pr.tickets_amount)as receipt_payment_amount,
pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount,
pl.entry_date,
- pl.execution_date,
+ pl.recorder_id,
pl.recorder_name,
+ pl.template_name,
+ pl.approver_id,
+ sm.is_white,
+ pl.approval_status,
pl.payment_method
from purchase_ledger pl
left join product_record pr on pl.id = pr.purchase_ledger_id
+ left join supplier_manage sm on pl.supplier_id = sm.id
<where>
1 = 1
<if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
and pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
+ </if>
+ <if test="c.approvalStatus != null and c.approvalStatus != ''">
+ and pl.approval_status = #{c.approvalStatus}
</if>
<if test="c.supplierName != null and c.supplierName != ''">
and pl.supplier_name like concat('%',#{c.supplierName},'%')
@@ -51,6 +60,7 @@
pl.recorder_name,
pl.contract_amount
order by pl.entry_date desc
+
</select>
<select id="getPaymentRegistrationDtoById" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
SELECT
diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index dc3048e..4e8a057 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -8,16 +8,16 @@
where
inspect_type=#{qualityInspect.inspectType}
<if test="qualityInspect.supplier != null and qualityInspect.supplier != '' ">
- AND supplier = #{qualityInspect.supplier}
+ AND supplier like concat('%',#{qualityInspect.supplier},'%')
</if>
<if test="qualityInspect.customer != null and qualityInspect.customer != '' ">
- AND customer = #{qualityInspect.customer}
+ AND customer like concat('%',#{qualityInspect.customer},'%')
</if>
<if test="qualityInspect.process != null and qualityInspect.process != '' ">
- AND process = #{qualityInspect.process}
+ AND process like concat('%',#{qualityInspect.process},'%')
</if>
<if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
- AND product_name = #{qualityInspect.productName}
+ AND product_name like concat('%',#{qualityInspect.productName},'%')
</if>
<if test="qualityInspect.entryDateStart != null and qualityInspect.entryDateStart != '' ">
AND check_time >= DATE_FORMAT(#{qualityInspect.entryDateStart},'%Y-%m-%d')
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index a4949aa..5d83bb1 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -58,13 +58,10 @@
T1.contract_amount,
T1.execution_date,
T2.nick_name AS entry_person_name,
- T1.payment_method,
- t3.shipping_car_number,
- t3.shipping_date
+ T1.payment_method
FROM
sales_ledger T1
LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
- left join shipping_info t3 on T1.id = t3.sales_ledger_id
<where>
<if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
new file mode 100644
index 0000000..ec8d8d4
--- /dev/null
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -0,0 +1,25 @@
+<?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.sales.mapper.SalesLedgerProductMapper">
+
+ <select id="selectSalesLedgerProductList" resultType="com.ruoyi.sales.pojo.SalesLedgerProduct">
+ SELECT
+ T1.*,
+ t3.shipping_car_number,
+ t3.shipping_date
+ FROM
+ sales_ledger_product T1
+ left join shipping_info t3 on T1.id = t3.sales_ledger_id
+ <where>
+ 1=1
+ <if test="salesLedgerProduct.salesLedgerId != null and salesLedgerProduct.salesLedgerId != '' ">
+ AND T1.sales_ledger_id = #{salesLedgerProduct.salesLedgerId}
+ </if>
+ <if test="salesLedgerProduct.type != null and salesLedgerProduct.type != '' ">
+ AND T1.type = #{salesLedgerProduct.type}
+ </if>
+ </where>
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/ShipmentApprovalMapper.xml b/src/main/resources/mapper/sales/ShipmentApprovalMapper.xml
new file mode 100644
index 0000000..8b9792e
--- /dev/null
+++ b/src/main/resources/mapper/sales/ShipmentApprovalMapper.xml
@@ -0,0 +1,24 @@
+<?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.sales.mapper.ShipmentApprovalMapper">
+
+ <select id="listPage" resultType="com.ruoyi.sales.pojo.ShipmentApproval">
+ SELECT *,
+ si.shipping_car_number,
+ T2.nick_name AS entry_person_name
+ FROM shipment_approval sa
+ LEFT JOIN shipping_info si ON sa.shipping_info_id = si.id
+ LEFT JOIN sales_ledger sl ON sa.sales_ledger_id = sl.id
+ LEFT JOIN sales_ledger_product slp ON sa.sales_ledger_product_id = slp.id
+ LEFT JOIN sys_user T2 ON sl.entry_person = T2.user_id
+ <where>
+ 1=1
+ <if test="req.approveStatus != null and req.approveStatus != '' ">
+ AND sa.approve_status = #{req.approveStatus}
+ </if>
+ <if test="req.salesContractNo != null and req.salesContractNo != '' ">
+ AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
+ </if>
+ </where>
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3