| doc/河南鹤壁天沐钢化玻璃厂.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/sales/SalesLedgerMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
doc/ºÓÄϺױÚÌìãå¸Ö»¯²£Á§³§.sql
@@ -84,4 +84,7 @@ ALTER TABLE `product-inventory-management-hbtmblc`.`customer_regions` COMMENT = '客æ·å°åºè¡¨'; ALTER TABLE `product-inventory-management-hbtmblc`.`customer` ADD COLUMN `regions_id` bigint NULL COMMENT 'å°åºID' AFTER `regions`; ADD COLUMN `regions_id` bigint NULL COMMENT 'å°åºID' AFTER `regions`; ALTER TABLE `sales_ledger` ADD COLUMN `delivery_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'åè´§ç¶æï¼0-æªåè´§ï¼1-å·²åè´§' AFTER `delivery_date`; src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -1,33 +1,33 @@ package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; // 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.approve.mapper.ApproveProcessMapper; import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl; import com.ruoyi.approve.vo.ApproveProcessVO; import com.ruoyi.common.enums.FileNameType; // import com.ruoyi.approve.mapper.ApproveProcessMapper; // import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl; // import com.ruoyi.approve.vo.ApproveProcessVO; // import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.utils.OrderUtils; import com.ruoyi.common.utils.SecurityUtils; // import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.security.LoginUser; // import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.other.service.impl.TempFileServiceImpl; import com.ruoyi.procurementrecord.utils.StockUtils; // import com.ruoyi.other.service.impl.TempFileServiceImpl; // import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.sales.dto.ShippingInfoDto; import com.ruoyi.sales.mapper.ShipmentApprovalMapper; // 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.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 com.ruoyi.sales.service.impl.CommonFileServiceImpl; // import com.ruoyi.sales.service.impl.CommonFileServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; @@ -37,7 +37,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDate; // import java.time.LocalDate; import java.util.ArrayList; import java.util.List; /** @@ -52,13 +53,20 @@ @Autowired private ShippingInfoService shippingInfoService; @Autowired private CommonFileServiceImpl commonFileService; // @Autowired // private CommonFileServiceImpl commonFileService; // @Autowired // private ApproveProcessServiceImpl approveProcessService; // @Autowired // private StockUtils stockUtils; @Autowired private ApproveProcessServiceImpl approveProcessService; private ISalesLedgerProductService salesLedgerProductService; @Autowired private StockUtils stockUtils; private ISalesLedgerService salesLedgerService; @GetMapping("/listPage") @@ -73,8 +81,10 @@ @Transactional(rollbackFor = Exception.class) @Log(title = "åè´§ä¿¡æ¯ç®¡ç", businessType = BusinessType.INSERT) public AjaxResult add(@RequestBody ShippingInfoDto req) throws Exception { LoginUser loginUser = SecurityUtils.getLoginUser(); // LoginUser loginUser = SecurityUtils.getLoginUser(); String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH"); /* // åæçå产ååè´§å审æ¹é»è¾ // åè´§å®¡æ¹ ApproveProcessVO approveProcessVO = new ApproveProcessVO(); approveProcessVO.setApproveType(7); @@ -89,6 +99,47 @@ req.setStatus("å¾ å®¡æ ¸"); boolean save = shippingInfoService.save(req); return save ? AjaxResult.success() : AjaxResult.error(); */ // ææ´ä¸ªè®¢ååè´§ï¼ä¸éå®¡æ¹ if (req.getSalesLedgerId() == null) { return AjaxResult.error("è¯·éæ©å货订å"); } // è·å该订åä¸çææäº§å SalesLedgerProduct query = new SalesLedgerProduct(); query.setSalesLedgerId(req.getSalesLedgerId()); List<SalesLedgerProduct> productList = salesLedgerProductService.selectSalesLedgerProductList(query); if (CollectionUtils.isEmpty(productList)) { return AjaxResult.error("该订å䏿 å¾ å货产å"); } // 为æ¯ä¸ªäº§åå建åè´§ä¿¡æ¯ List<ShippingInfo> shippingInfoList = new ArrayList<>(); for (SalesLedgerProduct product : productList) { ShippingInfo shippingInfo = new ShippingInfo(); shippingInfo.setSalesLedgerId(req.getSalesLedgerId()); shippingInfo.setSalesLedgerProductId(product.getId()); shippingInfo.setShippingNo(sh); shippingInfo.setStatus("å®¡æ ¸éè¿"); // ç´æ¥è®¾ä¸ºå®¡æ ¸éè¿ï¼è·³è¿å®¡æ¹ shippingInfo.setType(req.getType()); shippingInfo.setExpressCompany(req.getExpressCompany()); shippingInfo.setExpressNumber(req.getExpressNumber()); shippingInfo.setShippingDate(req.getShippingDate()); shippingInfo.setShippingCarNumber(req.getShippingCarNumber()); shippingInfoList.add(shippingInfo); } boolean save = shippingInfoService.saveBatch(shippingInfoList); if (save) { // æ´æ°éå®å°è´¦çåè´§ç¶æä¸ºå·²åè´§ SalesLedger salesLedger = new SalesLedger(); salesLedger.setId(req.getSalesLedgerId()); salesLedger.setDeliveryStatus(1); salesLedgerService.updateById(salesLedger); } return save ? AjaxResult.success() : AjaxResult.error(); } @ApiOperation("åè´§æ£åºå") src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -59,4 +59,7 @@ @ApiModelProperty(value = "äº¤è´§æ¥æ") private LocalDate deliveryDate; @ApiModelProperty(value = "æ¯å¦åè´§") private Integer deliveryStatus; } src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -142,6 +142,12 @@ @TableField(value = "delivery_date") private LocalDate deliveryDate; /** * åè´§ç¶æï¼0-æªåè´§ï¼1-å·²åè´§ */ @ApiModelProperty("åè´§ç¶æï¼0-æªåè´§ï¼1-å·²åè´§") private Integer deliveryStatus; @TableField(exist = false) @ApiModelProperty(value = "交货天æ°å·®") private Integer deliveryDaysDiff; src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessServiceImpl.java
@@ -33,6 +33,10 @@ public void addProcess(SalesLedgerProductProcess process) { checkDuplicate(process.getProcessName(), null, process.getProcessName()); this.save(process); if (!StringUtils.hasText(process.getCode())) { process.setCode("P" + process.getId()); this.updateById(process); } } @Override src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -460,6 +460,8 @@ salesLedger.setContractAmount(salesLedgerProductImportDtos.stream() .map(SalesLedgerProductImportDto::getTaxInclusiveTotalPrice) .reduce(BigDecimal.ZERO, BigDecimal::add)); // åè´§ç¶æ salesLedger.setDeliveryStatus(0); salesLedgerMapper.insert(salesLedger); for (SalesLedgerProductImportDto salesLedgerProductImportDto : salesLedgerProductImportDtos) { @@ -729,8 +731,12 @@ if (salesLedger.getId() == null) { String contractNo = generateSalesContractNo(); salesLedger.setSalesContractNo(contractNo); salesLedger.setDeliveryStatus(0); salesLedgerMapper.insert(salesLedger); } else { if (salesLedger.getDeliveryStatus() == 1) { throw new ServiceException("订åå·²åè´§,ç¦æ¢ç¼è¾"); } salesLedgerMapper.updateById(salesLedger); } @@ -865,7 +871,7 @@ // æ¸ ç©ºéå®äº§åç»å®çå å·¥ salesLedgerProductProcessBindService.updateProductProcessBind(salesLedgerProduct.getSalesProductProcessList(), salesLedgerProduct.getId()); // æ·»å çäº§æ°æ® salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct); // salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct); } } } src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -31,7 +31,8 @@ T1.execution_date, T2.nick_name AS entry_person_name, T1.payment_method, DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff, T1.delivery_status AS deliveryStatus FROM sales_ledger T1 LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id @@ -43,7 +44,8 @@ </select> <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.pojo.SalesLedger"> SELECT T1.id, SELECT T1.id, T1.sales_contract_no, T1.customer_contract_no, T1.project_name, @@ -62,20 +64,9 @@ T1.payment_method, T1.delivery_date, DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff, CASE WHEN shipping_status_counts.total_count = 0 THEN false WHEN shipping_status_counts.unshipped_count = 0 THEN true ELSE false END AS is_fh T1.delivery_status AS deliveryStatus FROM sales_ledger T1 LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id LEFT JOIN ( SELECT sales_ledger_id, COUNT(*) as total_count, SUM(CASE WHEN status != 'å·²åè´§' THEN 1 ELSE 0 END) as unshipped_count FROM shipping_info GROUP BY sales_ledger_id ) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id <where> <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' "> AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%') @@ -95,8 +86,12 @@ <if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' "> AND T1.entry_date <= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d') </if> <if test="salesLedgerDto.deliveryStatus != null"> AND T1.delivery_status = #{salesLedgerDto.deliveryStatus} </if> </where> order by T1.entry_date desc ORDER BY T1.entry_date DESC </select> <select id="selectIncomeStats" resultType="com.ruoyi.home.dto.IncomeExpenseAnalysisDto">