Pārlūkot izejas kodu

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

seyason 1 gadu atpakaļ
vecāks
revīzija
281af0b761
18 mainītis faili ar 298 papildinājumiem un 20 dzēšanām
  1. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ExpenseSheetController.java
  2. 5 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ExpenseSheetService.java
  4. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  5. 17 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  6. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  7. 12 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  8. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/SyncSapUtils.java
  9. 5 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureController.java
  10. 21 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureCopyController.java
  11. 85 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProdProcedureCopy.java
  12. 16 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProdProcedureCopyMapper.java
  13. 16 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProdProcedureCopyService.java
  14. 2 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProdProcedureService.java
  15. 20 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureCopyServiceImpl.java
  16. 59 11
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureServiceImpl.java
  17. 23 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ProdProcedureCopyMapper.xml
  18. 10 0
      fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ExpenseSheetController.java

@@ -118,7 +118,7 @@ public class ExpenseSheetController {
     }
 
     @RequestMapping("/exportList")
-    public HttpRespMsg exportList(ExpenseSheet sheet,String startDate, String endDate) {
+    public HttpRespMsg exportList(ExpenseSheet sheet,Integer projectId ,String startDate, String endDate) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
@@ -127,7 +127,7 @@ public class ExpenseSheetController {
             sheet.setOwnerId(user.getId());
         }
         sheet.setCompanyId(user.getCompanyId());
-        return expenseSheetService.exportList(sheet, startDate, endDate);
+        return expenseSheetService.exportList(sheet,projectId, startDate, endDate);
     }
 
     @RequestMapping("/editSendExpense")

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -2349,6 +2349,11 @@ public class ReportController {
         return reportService.getUserTimeCostByThird(json);
     }
 
+    @RequestMapping("/cannelAllReport")
+    public HttpRespMsg cannelAllReport(){
+        return reportService.cannelAllReport();
+    }
+
 
     private String getCheckDate(String[] createDate, Integer[] id) {
         String checkDate = null;

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ExpenseSheetService.java

@@ -33,7 +33,7 @@ public interface ExpenseSheetService extends IService<ExpenseSheet> {
 
     HttpRespMsg importData(HttpServletRequest request, MultipartFile[] files);
 
-    HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate);
+    HttpRespMsg exportList(ExpenseSheet sheet,Integer projectId, String startDate, String endDate);
 
     HttpRespMsg approveSingleProject(Integer id);
 

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -143,4 +143,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg getUserWorkTimeByCategory(Integer categoryId, Integer deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
     HttpRespMsg exportUserWorkTimeByCategory(Integer categoryId, Integer deptId, String userId, String startDate, String endDate);
+
+    HttpRespMsg cannelAllReport();
 }

+ 17 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -1097,7 +1097,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
      * @return
      */
     @Override
-    public HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate) {
+    public HttpRespMsg exportList(ExpenseSheet sheet,Integer projectId, String startDate, String endDate) {
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", sheet.getCompanyId()));
         QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
         queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
@@ -1146,7 +1146,19 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         List<Map> mapList=new ArrayList<>();
         for (ExpenseSheet record : records) {
             Map map=new HashMap();
-            List<ExpenseItem> expenseItems = expenseItemList.stream().filter(el -> el.getExpenseId().equals(record.getId())).collect(Collectors.toList());
+            List<ExpenseItem> expenseItems =new ArrayList<>();
+            if (projectId!=null){
+                expenseItems=expenseItemList.stream()
+                        .filter(el -> Optional.ofNullable(el.getExpenseId()).equals(Optional.ofNullable(record.getId())))
+                        .filter(el -> Optional.ofNullable(el.getProjectId()).map(p -> p.equals(projectId)).orElse(false))
+                        .collect(Collectors.toList());
+            }else {
+                expenseItems=expenseItemList.stream().filter(el -> el.getExpenseId().equals(record.getId())).collect(Collectors.toList());
+            }
+            double amount = 0.0;
+            if (expenseItems.size()>0){
+                amount=expenseItems.stream().mapToDouble(item -> Optional.ofNullable(item.getAmount()).orElse(0.0)).sum();
+            }
             map.put("size",expenseItems.size());
             mapList.add(map);
             for (ExpenseItem expenseItem : expenseItems) {
@@ -1157,10 +1169,12 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     item.add(record.getOwnerName());
                 }
                 item.add(record.getCreateDate()==null?"":record.getCreateDate()+"");
+
                 item.add(record.getTicketNum()==null?"0":record.getTicketNum()+"");
                 Optional<ExpenseMainType> first = mainTypes.stream().filter(ms -> ms.getId().equals(record.getType())).findFirst();
                 item.add(first.isPresent()?first.get().getName():"");
-                item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
+//                item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
+                item.add(amount+"");
                 item.add(record.getRemark()==null?"":record.getRemark());
                 switch (expenseItem.getStatus()){
                     case 0:

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -11865,7 +11865,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<ServiceProduct> serviceProducts = projectServiceData.getServiceProducts();
             if(serviceProducts!=null&&serviceProducts.size()>0){
                 for (ServiceProduct serviceProduct : serviceProducts) {
-                    if(serviceProduct.getProductCategoryID().equals("901")&&serviceProduct.getBaseMeasureUnitCode().equals("HUR")&&serviceProduct.getSales()!=null&&serviceProduct.getSales().getLifeCycleStatusCode().equals("2")){
+                    if(serviceProduct.getProductCategoryID().equals("901")&&serviceProduct.getBaseMeasureUnitCode().equals("HUR")&&serviceProduct.getSales()!=null){
                         SapProjectService sapProjectService=new SapProjectService();
                         sapProjectService.setServiceCode(serviceProduct.getInternalID());
                         sapProjectService.setServiceName(serviceProduct.getDescription().getDescription());

+ 12 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -7631,7 +7631,17 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
-    public void  cancelReportPushSap(String reportIds,User user){
+    @Override
+    public HttpRespMsg cannelAllReport() {
+        List<ReportPushLog> list = reportPushLogService.list();
+        List<Integer> collect = list.stream().map(ReportPushLog::getReportId).distinct().collect(Collectors.toList());
+        String s = collect.stream().map(m -> String.valueOf(m)).collect(Collectors.joining(","));
+        User user = userMapper.selectById(request.getHeader("token"));
+        cancelReportPushSap(s,user);
+        return null;
+    }
+
+    public void  cancelReportPushSap(String reportIds, User user){
         if(!StringUtils.isEmpty(reportIds)){
             LocalDateTime localDateTime=LocalDateTime.now();
             List<SapSyncLog> sapSyncLogs=new ArrayList<>();
@@ -7664,6 +7674,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         }else{
                             result = WebServiceUtils.requestByXml("https://my601432.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my601432.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
                         }
+//                        result = WebServiceUtils.requestByXml("https://my601432.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my601432.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
                     } catch (Exception e) {
                         e.printStackTrace();
                     }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/SyncSapUtils.java

@@ -272,7 +272,7 @@ public class SyncSapUtils {
         processingConditions.setQueryHitsUnlimitedIndicator("true");
         xmlRequestData.setProcessingConditions(processingConditions);
         ServiceProductSelectionByElements serviceProductSelectionByElements=new ServiceProductSelectionByElements();
-        serviceProductSelectionByElements.setSelectionByLastChangeSinceDateTime(startDate+"T00:00:00Z");
+        serviceProductSelectionByElements.setSelectionByLastChangeSinceDateTime(startDate+"T23:59:59Z");
         xmlRequestData.setServiceProductSelectionByElements(serviceProductSelectionByElements);
         String xml = CommonUtils.convertToXml(xmlRequestData);
         xml=xml.substring(xml.indexOf("<XMLDATA>")+9,xml.lastIndexOf("</XMLDATA>"));

+ 5 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureController.java

@@ -78,5 +78,10 @@ public class ProdProcedureController {
     public HttpRespMsg getInfo(@RequestParam String version,@RequestParam Integer productId){
         return prodProcedureService.getInfo(request,version,productId);
     }
+
+    @RequestMapping("updateData")
+    public HttpRespMsg updateData(){
+        return prodProcedureService.updateData();
+    }
 }
 

+ 21 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureCopyController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-12
+ */
+@RestController
+@RequestMapping("/prod-procedure-copy")
+public class ProdProcedureCopyController {
+
+}
+

+ 85 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProdProcedureCopy.java

@@ -0,0 +1,85 @@
+package com.management.platform.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ProdProcedureCopy extends Model<ProdProcedureCopy> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工序名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 所属公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 所属产品id
+     */
+    @TableField("product_id")
+    private Integer productId;
+
+    /**
+     * 单间工价
+     */
+    @TableField("unit_price")
+    private BigDecimal unitPrice;
+
+    /**
+     * 质检类型:0-自检,1-互检,2-专检
+     */
+    @TableField("check_type")
+    private Integer checkType;
+
+    /**
+     * 单件工时
+     */
+    @TableField("working_time")
+    private Double workingTime;
+
+    /**
+     * 版本号
+     */
+    @TableField("version_number")
+    private String versionNumber;
+
+    /**
+     * 产品名称
+     */
+    @TableField("product_name")
+    private String productName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProdProcedureCopyMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.ProdProcedureCopy;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-12
+ */
+public interface ProdProcedureCopyMapper extends BaseMapper<ProdProcedureCopy> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProdProcedureCopyService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.ProdProcedureCopy;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-12
+ */
+public interface ProdProcedureCopyService extends IService<ProdProcedureCopy> {
+
+}

+ 2 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProdProcedureService.java

@@ -27,4 +27,6 @@ public interface ProdProcedureService extends IService<ProdProcedure> {
     HttpRespMsg getInfo(HttpServletRequest request, String version, Integer productId);
 
     HttpRespMsg getLastProcedureList(HttpServletRequest request, Integer productId);
+
+    HttpRespMsg updateData();
 }

+ 20 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureCopyServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.ProdProcedureCopy;
+import com.management.platform.mapper.ProdProcedureCopyMapper;
+import com.management.platform.service.ProdProcedureCopyService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-12
+ */
+@Service
+public class ProdProcedureCopyServiceImpl extends ServiceImpl<ProdProcedureCopyMapper, ProdProcedureCopy> implements ProdProcedureCopyService {
+
+}

+ 59 - 11
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureServiceImpl.java

@@ -2,26 +2,19 @@ package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.PlanProcedureTotal;
-import com.management.platform.entity.ProdProcedure;
-import com.management.platform.entity.User;
-import com.management.platform.mapper.PlanProcedureTotalMapper;
-import com.management.platform.mapper.ProdProcedureMapper;
-import com.management.platform.mapper.ProductMapper;
-import com.management.platform.mapper.UserMapper;
+import com.management.platform.entity.*;
+import com.management.platform.mapper.*;
 import com.management.platform.service.PlanProcedureTotalService;
 import com.management.platform.service.ProdProcedureService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.service.ReportService;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -43,6 +36,12 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
     private ProductMapper productMapper;
     @Resource
     private PlanProcedureTotalMapper planProcedureTotalMapper;
+    @Resource
+    private ProdProcedureCopyMapper prodProcedureCopyMapper;
+    @Resource
+    private PlanProcedureTotalService planProcedureTotalService;
+    @Resource
+    private ReportService reportService;
 
     @Override
     public HttpRespMsg changeProdProcedure(HttpServletRequest request, List<ProdProcedure> prodProcedureList, Integer productId, String productName, String version) {
@@ -69,6 +68,16 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
                     .eq(StringUtils.isNotBlank(version),ProdProcedure::getVersionNumber,version)
                     .select(ProdProcedure::getId)
             );
+            //当现有的数据不是新增工序而且没指定新的版本号时 要阻止
+            List<Integer> oldIdList = oldList.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
+            List<Integer> nowIdList = prodProcedureList.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
+            if(!nowIdList.containsAll(oldIdList)){
+                List<PlanProcedureTotal> planProcedureTotals = planProcedureTotalMapper.selectList(new QueryWrapper<PlanProcedureTotal>().in("prod_procedure_id", oldIdList));
+                if(planProcedureTotals.size()>0){
+                    msg.setError("当前版本工序存在已被使用的,同版本号只支持修改和新增,不支持删除操作,请重新定义新的工序版本号");
+                    return msg;
+                }
+            }
 
             if(oldList!=null&&oldList.size()>0){
 
@@ -198,4 +207,43 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
         httpRespMsg.data=map;
         return httpRespMsg;
     }
+
+    @Override
+    public HttpRespMsg updateData() {
+        List<ProdProcedure> prodProcedures = prodProcedureMapper.selectList(new LambdaQueryWrapper<ProdProcedure>().eq(ProdProcedure::getCompanyId, 7));
+        List<ProdProcedureCopy> prodProcedureCopyList = prodProcedureCopyMapper.selectList(new LambdaQueryWrapper<ProdProcedureCopy>().eq(ProdProcedureCopy::getCompanyId, 7));
+        List<Integer> ids = prodProcedures.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
+        //需要处理的数据
+        List<PlanProcedureTotal> planProcedureTotals = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().notIn(PlanProcedureTotal::getProdProcedureId, ids));
+        List<Report> reportList = reportService.list(new LambdaQueryWrapper<Report>().notIn(Report::getProdProcedureId, ids));
+        for (PlanProcedureTotal planProcedureTotal : planProcedureTotals) {
+            Optional<ProdProcedureCopy> first = prodProcedureCopyList.stream().filter(p -> p.getId().equals(planProcedureTotal.getProdProcedureId())).findFirst();
+            if(first.isPresent()){
+                ProdProcedureCopy prodProcedureCopy = first.get();
+                Optional<ProdProcedure> procedure = prodProcedures.stream().filter(p -> p.getProductId().equals(prodProcedureCopy.getProductId()) && p.getVersionNumber().equals(prodProcedureCopy.getVersionNumber()) && p.getName().equals(prodProcedureCopy.getName())).findFirst();
+                if(procedure.isPresent()){
+                    planProcedureTotal.setProdProcedureId(procedure.get().getId());
+                }
+            }
+        }
+        if(planProcedureTotals.size()>0){
+            planProcedureTotalService.updateBatchById(planProcedureTotals);
+        }
+        for (Report report : reportList) {
+            Optional<ProdProcedureCopy> first = prodProcedureCopyList.stream().filter(p -> p.getId().equals(report.getProdProcedureId())).findFirst();
+            if(first.isPresent()){
+                ProdProcedureCopy prodProcedureCopy = first.get();
+                Optional<ProdProcedure> procedure = prodProcedures.stream().filter(p -> p.getProductId().equals(prodProcedureCopy.getProductId()) && p.getVersionNumber().equals(prodProcedureCopy.getVersionNumber()) && p.getName().equals(prodProcedureCopy.getName())).findFirst();
+                if(procedure.isPresent()){
+                    report.setProdProcedureId(procedure.get().getId());
+                }
+            }
+        }
+        if(reportList.size()>0){
+            reportService.updateBatchById(reportList);
+        }
+
+
+        return new HttpRespMsg();
+    }
 }

+ 23 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ProdProcedureCopyMapper.xml

@@ -0,0 +1,23 @@
+<?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.management.platform.mapper.ProdProcedureCopyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ProdProcedureCopy">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="company_id" property="companyId" />
+        <result column="product_id" property="productId" />
+        <result column="unit_price" property="unitPrice" />
+        <result column="check_type" property="checkType" />
+        <result column="working_time" property="workingTime" />
+        <result column="version_number" property="versionNumber" />
+        <result column="product_name" property="productName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, company_id, product_id, unit_price, check_type, working_time, version_number, product_name
+    </sql>
+
+</mapper>

+ 10 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -1733,6 +1733,15 @@ export default {
           spl[i].pic = spl[i].pic.map(a => a.name).join(',')
         }
       }
+      console.log(paramData, '<== paramData')
+      let noAmount = paramData.invoiceList.filter(item => !item.amount)
+      if(noAmount.length > 0) {
+        this.$message({
+          message: '请填写完整费用金额',
+          type: "error"
+        });
+        return;
+      }
       paramData.items = JSON.stringify(paramData.invoiceList)//这里要传发票列表的json转string
       // console.log(paramData, '<== paramData')
       // return
@@ -2386,6 +2395,7 @@ export default {
         endDate: end,
         ownerId: this.ownerId,
         type: this.type,
+        projectId: this.selectProject ? this.selectProject : null,
       },
         res => {
           if (res.code == "ok") {