From 91b92422716cb4c5d0433f77fd2d6d45a69639c4 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期二, 15 八月 2023 18:35:17 +0800
Subject: [PATCH] # 工资表配置表 联调修改

---
 server/src/main/java/doumeemes/dao/ext/vo/CompanyExtListVO.java                  |    4 +
 server/src/main/java/doumeemes/service/business/impl/CompanyOpenServiceImpl.java |   21 ++++++
 server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java             |    8 +-
 server/src/main/resources/mappers/BomExtMapper.xml                               |    2 
 server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java |   12 ++--
 server/src/main/java/doumeemes/service/ext/impl/WorkPlansExtServiceImpl.java     |   13 +++-
 server/src/main/java/doumeemes/api/business/SalaryParamController.java           |   28 +++++++++
 server/src/main/java/doumeemes/config/shiro/ShiroRealm.java                      |    5 +
 server/src/main/java/doumeemes/service/business/impl/CompanyServiceImpl.java     |   21 ++++++
 server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java         |    9 +++
 server/src/main/java/doumeemes/core/utils/excel/EasyExcelUtil.java               |    5 +
 server/src/main/resources/mappers/PlansExtMapper.xml                             |    1 
 server/src/main/java/doumeemes/dao/ext/vo/BomExtListVO.java                      |    7 +-
 server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java    |    4 +
 server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java                    |   12 +++-
 15 files changed, 125 insertions(+), 27 deletions(-)

diff --git a/server/src/main/java/doumeemes/api/business/SalaryParamController.java b/server/src/main/java/doumeemes/api/business/SalaryParamController.java
index d405ec3..6c7e751 100644
--- a/server/src/main/java/doumeemes/api/business/SalaryParamController.java
+++ b/server/src/main/java/doumeemes/api/business/SalaryParamController.java
@@ -11,13 +11,21 @@
 import doumeemes.dao.ext.dto.SalaryParamDTO;
 import doumeemes.service.business.SalaryParamService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -89,4 +97,24 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(salaryParamService.findById(id));
     }
+
+    @ApiOperation(value = "鎵归噺瀵煎叆璁″垝", notes = "鎵归噺瀵煎叆璁″垝", httpMethod = "POST", position = 6)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+    })
+    @PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data")
+//    @RequiresPermissions("business:salaryparam:create")
+    public ApiResponse importBatch(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
+        CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
+        if (multipartResovler.isMultipart(request)) {
+            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+            Iterator<String> it = multipartRequest.getFileNames();
+            while (it.hasNext()) {
+                MultipartFile file = multipartRequest.getFile((String) it.next());
+                salaryParamService.importPlans(file);
+                break;
+            }
+        }
+        return ApiResponse.success( null);
+    }
 }
diff --git a/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java b/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
index 9b3e2f5..c11a875 100644
--- a/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
+++ b/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
@@ -37,6 +37,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鑷畾涔塕ealm锛屽鐞嗚璇佸拰鏉冮檺
@@ -130,7 +131,9 @@
             if(com == null){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヨ处鎴峰紓甯革紒");
             }
-
+            if(com.getStatus() == 0 ){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氬凡杩囩鐢紒");
+            }
             if(com.getOepnValidDate().before(new Date())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氬凡杩囦娇鐢ㄦ湁鏁堟湡锛�");
             }
diff --git a/server/src/main/java/doumeemes/core/utils/excel/EasyExcelUtil.java b/server/src/main/java/doumeemes/core/utils/excel/EasyExcelUtil.java
index 952b0cf..ffde846 100644
--- a/server/src/main/java/doumeemes/core/utils/excel/EasyExcelUtil.java
+++ b/server/src/main/java/doumeemes/core/utils/excel/EasyExcelUtil.java
@@ -87,6 +87,9 @@
     }
 
     /**
+     *
+     * titleRows : 鏍囬鍗犲嚑琛�
+     * headerRows : 鍚屽崰鍑犺
      * excel甯歌瀵煎叆(榛樿鍙鍙栫涓�寮爏heet宸ヤ綔绨�)
      */
     public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass){
@@ -150,4 +153,4 @@
         }
         return list;
     }
-}
\ No newline at end of file
+}
diff --git a/server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java
index 59044f2..851d29e 100644
--- a/server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java
+++ b/server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java
@@ -1,6 +1,7 @@
 package doumeemes.dao.ext.dto;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
@@ -12,6 +13,7 @@
  */
 @Data
 @ApiModel("缁╂晥宸ヨ祫閰嶇疆瀵煎叆")
+@ExcelTarget("SalaryParamImportDTO")
 public class SalaryParamImportDTO {
 
     @Excel(name="璁′环鏂瑰紡",orderNum ="1")
@@ -20,10 +22,10 @@
     @Excel(name="宸ュ巶鍚嶇О",orderNum ="2")
     private String departName;
 
-    @Excel(name="浜у搧鍚嶇О",orderNum ="3")
+    @Excel(name="鐗╂枡鍚嶇О",orderNum ="3")
     private String materialName;
 
-    @Excel(name="浜у搧缂栫爜",orderNum ="4")
+    @Excel(name="鐗╂枡缂栫爜",orderNum ="4")
     private String materialCode;
 
     @Excel(name="宸ュ簭鍚嶇О",orderNum ="5")
@@ -33,7 +35,7 @@
     private BigDecimal salary;
 
     @Excel(name="鏍囧噯浜у嚭",orderNum ="7")
-    private Integer NUM;
+    private String num;
 
     @Excel(name="鏍囧噯宸ユ椂",orderNum ="8")
     private String timesName;
diff --git a/server/src/main/java/doumeemes/dao/ext/vo/BomExtListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/BomExtListVO.java
index 830af01..174a563 100644
--- a/server/src/main/java/doumeemes/dao/ext/vo/BomExtListVO.java
+++ b/server/src/main/java/doumeemes/dao/ext/vo/BomExtListVO.java
@@ -60,8 +60,8 @@
     @ExcelColumn(name="鍏徃绾х粍缁囩紪鐮侊紙鍏宠仈department琛級")
     private Integer departId;
 
-    @ApiModelProperty(value = "鐗╂枡ID锛堝叧鑱攎aterial琛級", example = "1")
-    @ExcelColumn(name="鐗╂枡ID锛堝叧鑱攎aterial琛級")
+    @ApiModelProperty(value = "鐗╂枡ID锛堣瀛楁鍏宠仈 material_distribute 琛↖D 锛侊紒锛侊紒 锛�", example = "1")
+    @ExcelColumn(name="鐗╂枡ID锛堝叧鑱攎aterial_distribute琛級")
     private Integer materialId;
 
     @ApiModelProperty(value = "鐗堟湰鍙�")
@@ -157,5 +157,6 @@
     @ApiModelProperty(value = "宸ュ簭鍚嶇О")
     private String procedureName;
 
-
+    @ApiModelProperty(value = "material id")
+    private Integer realMaterialId;
 }
diff --git a/server/src/main/java/doumeemes/dao/ext/vo/CompanyExtListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/CompanyExtListVO.java
index 7df00ab..a2065de 100644
--- a/server/src/main/java/doumeemes/dao/ext/vo/CompanyExtListVO.java
+++ b/server/src/main/java/doumeemes/dao/ext/vo/CompanyExtListVO.java
@@ -165,4 +165,8 @@
     @ApiModelProperty(value = "缇氱緤骞冲彴搴旂敤鍙傛暟锛宩son鏍煎紡瀛樺偍{app_key:,aes_key:,app_secret:}" )
     private String lingyangInfo;
 
+    @ApiModelProperty(value = "鍚嶇О")
+    @ExcelColumn(name="鍚嶇О")
+    private Byte status;
+
 }
diff --git a/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
index 43c59ef..a9387d4 100644
--- a/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
+++ b/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
@@ -147,6 +147,12 @@
     private Integer distributNoDoneNum;
     @ApiModelProperty(value = "搴撳瓨鏄惁婊¤冻 0涓嶆弧瓒� 1婊¤冻", example = "0")
     private Integer  isStock;
+    @ApiModelProperty(value = "鏄惁寤舵湡")
+    private Boolean hasExpire;
+    @ApiModelProperty(value = "鎴愬搧璁″垝寮�濮嬫棩鏈�")
+    private  Date workPlanPlanDate;
+    @ApiModelProperty(value = "鎴愬搧璁″垝缁撴潫鏃ユ湡")
+    private  Date workPlanStartDate;
 
 
     @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width =15)
@@ -173,9 +179,9 @@
     @ExcelColumn(name="閿�鍞鍗�")
     private String salesOrder;
 
-    @ApiModelProperty(value = "鎴愬搧璁″垝寮�濮嬫椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date workPlanStartDate;
+//    @ApiModelProperty(value = "鎴愬搧璁″垝寮�濮嬫椂闂�")
+//    @JsonFormat(pattern = "yyyy-MM-dd")
+//    private Date workPlanStartDate;
 
     @ApiModelProperty(value = "鎴愬搧璁″垝缁撴潫鏃堕棿")
     @JsonFormat(pattern = "yyyy-MM-dd")
diff --git a/server/src/main/java/doumeemes/service/business/impl/CompanyOpenServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/CompanyOpenServiceImpl.java
index ab6ebbd..0dd3049 100644
--- a/server/src/main/java/doumeemes/service/business/impl/CompanyOpenServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/CompanyOpenServiceImpl.java
@@ -11,14 +11,18 @@
 import doumeemes.dao.business.model.Company;
 import doumeemes.dao.business.model.CompanyLog;
 import doumeemes.dao.business.model.CompanyOpen;
+import doumeemes.dao.ext.vo.CompanyExtListVO;
 import doumeemes.service.business.CompanyLogService;
 import doumeemes.service.business.CompanyOpenService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import doumeemes.service.ext.DepartmentExtService;
 import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -43,6 +47,10 @@
 
     @Autowired
     CompanyLogService companyLogService;
+
+    @Autowired
+    @Lazy
+    private DepartmentExtService departmentExtService;
 
     @Override
     public Integer create(CompanyOpen companyOpen) {
@@ -90,7 +98,7 @@
         company.setOepnValidDate(companyOpen.getValidDate());
         company.setOepnType(companyOpen.getOepnType());
         companyMapper.updateById(company);
-
+        Company company1 = companyMapper.selectById(companyOpen.getCompanyId());
 
         CompanyLog companyLog = new CompanyLog();
         companyLog.setDeleted((byte) Constants.ZERO);
@@ -103,6 +111,15 @@
         companyLog.setUpdateType(Constants.CompanyUpdateType.UPDATE_VAIL_DATE.getKey());
         companyLog.setDetail("鏈夋晥鏈熶粠"+format.format(cyResult.getOepnValidDate())+"鏃ヨ皟鏁磋嚦"+format.format(companyOpen.getValidDate()));
         companyLogService.create(companyLog);
+
+        initRedisCache(company1);
+    }
+
+    private void initRedisCache(Company com) {
+        CompanyExtListVO c = new CompanyExtListVO();
+        BeanUtils.copyProperties(com,c);
+        departmentExtService.loadComDepart(c);
+        departmentExtService.initCompnayCodesByCom(com);
     }
 
     @Override
@@ -131,7 +148,7 @@
         QueryWrapper<CompanyOpen> wrapper = new QueryWrapper<>(companyOpen);
         return companyOpenMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<CompanyOpen> findPage(PageWrap<CompanyOpen> pageWrap) {
         IPage<CompanyOpen> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
diff --git a/server/src/main/java/doumeemes/service/business/impl/CompanyServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/CompanyServiceImpl.java
index 726b6bf..d0a26be 100644
--- a/server/src/main/java/doumeemes/service/business/impl/CompanyServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/CompanyServiceImpl.java
@@ -14,6 +14,7 @@
 import doumeemes.dao.business.model.CompanyLog;
 import doumeemes.dao.business.model.Multifiles;
 import doumeemes.dao.ext.dto.DingDingConfig;
+import doumeemes.dao.ext.vo.CompanyExtListVO;
 import doumeemes.service.business.CompanyLogService;
 import doumeemes.service.business.CompanyService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -21,9 +22,12 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import doumeemes.service.business.MultifilesService;
+import doumeemes.service.ext.DepartmentExtService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -46,6 +50,10 @@
 
     @Autowired
     private CompanyLogService companyLogService;
+
+    @Autowired
+    @Lazy
+    private DepartmentExtService departmentExtService;
 
 
     @Override
@@ -115,7 +123,7 @@
         update.setStatus(company.getStatus());
         update.setDingdingInfo(company.getDingdingInfo());
         companyMapper.updateById(update);
-
+        Company company1 = companyMapper.selectById(company.getId());
 //        鏇存柊璁板綍
 
         if(Objects.nonNull(company.getStatus())){
@@ -145,6 +153,15 @@
             companyLogService.create(companyLog);
         }
 
+        initRedisCache(company1);
+    }
+
+
+    private void initRedisCache(Company com) {
+        CompanyExtListVO c = new CompanyExtListVO();
+        BeanUtils.copyProperties(com,c);
+        departmentExtService.loadComDepart(c);
+        departmentExtService.initCompnayCodesByCom(com);
     }
 
     private Boolean isParseObject(String dingdingInfo){
@@ -185,7 +202,7 @@
         QueryWrapper<Company> wrapper = new QueryWrapper<>(company);
         return companyMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<Company> findPage(PageWrap<Company> pageWrap) {
         IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
diff --git a/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
index 7d63f71..38e3017 100644
--- a/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
@@ -54,6 +54,8 @@
 
     @Override
     public Integer create(SalaryParam salaryParam) {
+
+
         LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
 
         SalaryParam insert = new SalaryParam();
@@ -178,7 +180,7 @@
                 || Objects.isNull(s.getDepartName())
                 || Objects.isNull(s.getMaterialCode())
                 || Objects.isNull(s.getProcedureName())
-                || Objects.isNull(s.getNUM())){
+                || Objects.isNull(s.getNum())){
                 throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵煎叆鏁版嵁鍐呭鏈夎锛�");
             }
         });
@@ -214,7 +216,7 @@
             proceduresWrapper.lambda()
                     .eq(Procedures::getName,salaryParamImportDTO.getProcedureName())
                     .eq(Procedures::getRootDepartId,department.getRootId())
-                    .eq(Procedures::getDepartId,department.getId())
+                    .eq(Procedures::getOrgId,department.getId())
                     .last("limit 1");
             Procedures procedures = proceduresMapper.selectOne(proceduresWrapper);
             if (Objects.isNull(procedures)){
@@ -226,10 +228,8 @@
             salaryParam.setProcedureId(procedures.getId());
             salaryParam.setMaterialId(material.getId());
             salaryParam.setSalary(salaryParamImportDTO.getSalary());
-            salaryParam.setNum(new BigDecimal(salaryParamImportDTO.getNUM()));
-
+            salaryParam.setNum(new BigDecimal(salaryParamImportDTO.getNum()));
             salaryParam.setTimes(getIntegerTimes(salaryParamImportDTO.getTimesName()));
-
             Integer unqualified = Optional.ofNullable(salaryParamImportDTO.getUnqualified()).map(s -> {
                 if ("鍚�".equals(s)) {
                     return 0;
@@ -265,7 +265,7 @@
                 m = Integer.parseInt(a.substring(hIndex >=0?hIndex+2:0,mIndex));
             }
             if(sIndex > mIndex){
-               s = Integer.parseInt(a.substring(mIndex >=0?mIndex+2:0,mIndex));
+               s = Integer.parseInt(a.substring(mIndex >= 0 ? mIndex+2 : 0, sIndex));
             }
             return  h*3600+m*60+s;
         }catch (Exception e){
diff --git a/server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java
index d918101..aedce83 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java
@@ -37,6 +37,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.PostConstruct;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -443,6 +444,7 @@
             //鍔犲叆redis缂撳瓨锛屽瓨鍌ㄤ紒涓氫俊鎭�
             RedisUtil.addObject(redisTemplate,Constants.RedisKeys.COM_DEPART_TREE_KEY+com.getId(),rootDepart);
     }
+    @PostConstruct
     @Override
     public  void loadAllDepart() {
         QueryCompanyExtDTO dto = new QueryCompanyExtDTO();
@@ -796,7 +798,7 @@
             for (Department department:departmentList ) {
                 this.dealDepartmentData(department,user);
             }
-        } 
+        }
     }
 
     public void dealDepartmentData(Department department,LoginUserInfo user){
diff --git a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
index 271a637..46a56fc 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -34,6 +34,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -197,6 +198,14 @@
 //                p.setDistributNum(tp.getDistributNum());
 //                p.setDoneNum(tp.getDoneNum());
                 p.setIsStock(wStockExtService.isStockForPlan(p));
+                if ( !p.getStatus().equals(Constants.PLAN_STATUS.done) &&
+                        !p.getStatus().equals(Constants.PLAN_STATUS.close)){
+                    if (Objects.nonNull(p.getPlanDate())){
+                        p.setHasExpire(DateUtil.toDateLocalDateTime(p.getWorkPlanPlanDate()).toLocalDate().isBefore(LocalDate.now()));
+                    }else {
+                        p.setHasExpire(false);
+                    }
+                }
             }
         }
         return PageData.from(new PageInfo<>(result));
diff --git a/server/src/main/java/doumeemes/service/ext/impl/WorkPlansExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/WorkPlansExtServiceImpl.java
index f33817e..e0e1c37 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/WorkPlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/WorkPlansExtServiceImpl.java
@@ -175,12 +175,17 @@
                     i.setFinishUnQualifiedNum(Objects.isNull(plansExtListVO.getUnqulifiedNum())?Constants.ZERO:plansExtListVO.getUnqulifiedNum());
                     i.setFinishNum(Objects.isNull(plansExtListVO.getDoneNum())?Constants.ZERO:plansExtListVO.getDoneNum());
                 }
-                if (Objects.nonNull(i.getPlanDate())){
-                    i.setHasExpire(DateUtil.toDateLocalDateTime(i.getPlanDate()).toLocalDate().isBefore(LocalDate.now()));
-                }else {
-                    i.setHasExpire(false);
+
+                if ( !i.getStatus().equals(Constants.WORKPLANHISTORY_TYPE.done) &&
+                        !i.getStatus().equals(Constants.WORKPLANHISTORY_TYPE.close)){
+                    if (Objects.nonNull(i.getPlanDate())){
+                        i.setHasExpire(DateUtil.toDateLocalDateTime(i.getPlanDate()).toLocalDate().isBefore(LocalDate.now()));
+                    }else {
+                        i.setHasExpire(false);
+                    }
                 }
 
+
             });
         }
         return PageData.from(new PageInfo<>(result));
diff --git a/server/src/main/resources/mappers/BomExtMapper.xml b/server/src/main/resources/mappers/BomExtMapper.xml
index 5d5cd41..2ae61f3 100644
--- a/server/src/main/resources/mappers/BomExtMapper.xml
+++ b/server/src/main/resources/mappers/BomExtMapper.xml
@@ -564,7 +564,7 @@
     `dmodel`.`STATUS` AS DMODEL_STATUS,
     `dmodel`.`VALID_TIME` AS DMODEL_VALID_TIME,
     `dmodel`.`INVALID_TIME` AS DMODEL_INVALID_TIME,
-    `mmodel`.`ID` AS MMODEL_ID,
+    `mmodel`.`ID` AS realMaterialId,
     `mmodel`.`DELETED` AS MMODEL_DELETED,
     `mmodel`.`CREATE_USER` AS MMODEL_CREATE_USER,
     `mmodel`.`CREATE_TIME` AS MMODEL_CREATE_TIME,
diff --git a/server/src/main/resources/mappers/PlansExtMapper.xml b/server/src/main/resources/mappers/PlansExtMapper.xml
index 588478d..4714cc8 100644
--- a/server/src/main/resources/mappers/PlansExtMapper.xml
+++ b/server/src/main/resources/mappers/PlansExtMapper.xml
@@ -368,6 +368,7 @@
       concat(`usermodel`.realname,' ',`usermodel`.mobile) as planUserName , `umodel`.name as unitName ,
       w.PLAN_CODE as workPlanCode , w.SALESORDER as salesOrder ,
       w.START_DATE as workPlanStartDate  , w.PLAN_DATE as workPlanEndDate,
+      w.`PLAN_DATE` as workPlanPlanDate,
       ifnull((select  sum(worder.PLAN_NUM) from workorder worder where worder.PLAN_ID = a.id and worder.STATUS not in (7,8)  ),0) as produceNum
 
     FROM `plans` `a`

--
Gitblit v1.9.3