Enford %!s(int64=5) %!d(string=hai) anos
pai
achega
5321158895
Modificáronse 16 ficheiros con 1897 adicións e 0 borrados
  1. 17 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/dao/WorkMaterialCollectEngineerDao.java
  2. 29 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/dao/WorkMaterialCollectTotalDao.java
  3. 27 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/dao/WorkMaterialCollectTypeDao.java
  4. 142 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectEngineer.java
  5. 147 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectExportTotal.java
  6. 147 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectTotal.java
  7. 77 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectType.java
  8. 222 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialCollectEngineerService.java
  9. 204 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialCollectTotalService.java
  10. 36 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialCollectTypeService.java
  11. 28 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialModelListService.java
  12. 161 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectEngineerController.java
  13. 217 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectEngineerSureController.java
  14. 173 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectTotalController.java
  15. 97 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectTypeController.java
  16. 173 0
      src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialModelListController.java

+ 17 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/dao/WorkMaterialCollectEngineerDao.java

@@ -0,0 +1,17 @@
+package com.jeeplus.modules.workmaterialcollect.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+
+/**
+ * 项目 列表 dao接口
+ */
+@MyBatisDao
+public interface WorkMaterialCollectEngineerDao extends CrudDao<WorkMaterialCollectEngineer> {
+    //查看
+    WorkMaterialCollectEngineer findCollectEng(String id);
+
+    //修改状态
+    void updateProjectStatus(WorkMaterialCollectEngineer workMaterialCollectEngineer);
+}

+ 29 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/dao/WorkMaterialCollectTotalDao.java

@@ -0,0 +1,29 @@
+package com.jeeplus.modules.workmaterialcollect.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectExportTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@MyBatisDao
+public interface WorkMaterialCollectTotalDao extends CrudDao<WorkMaterialCollectTotal> {
+
+    List<WorkMaterialCollectExportTotal> findListExcel(WorkMaterialCollectExportTotal workMaterialCollectExportTotal);
+    //保存
+    void insertList(@Param("list")List<WorkMaterialCollectTotal> list);
+    //删除
+    void deleteProjectTypeId(String projectTypeId);
+
+    //修改备注
+    void updateRemarks(WorkMaterialCollectType workMaterialCollectType);
+
+    //批量删除确认单
+    void  deleteWorkTotal(@Param(value = "list")List<String> list);
+
+    //多条件查询
+    List<WorkMaterialCollectTotal> findAllTypeTotal(@Param("list") List<WorkMaterialCollectType> list);
+}

+ 27 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/dao/WorkMaterialCollectTypeDao.java

@@ -0,0 +1,27 @@
+package com.jeeplus.modules.workmaterialcollect.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@MyBatisDao
+public interface WorkMaterialCollectTypeDao extends CrudDao<WorkMaterialCollectType> {
+
+    //修改状态
+    public void updateStatus(WorkMaterialCollectType workMaterialCollectType);
+
+    //添加备注
+    public void updateRemarks(WorkMaterialCollectType workMaterialCollectType);
+
+    //批量修改状态
+    public void updateStatusList(@Param(value = "workMaterialCollectTypes") List<WorkMaterialCollectType> workMaterialCollectTypes);
+
+    //根据项目id删除类型
+    public void deleteEngId(String id);
+
+    //根据id修改状态
+    public void updateStatusId(String id);
+}

+ 142 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectEngineer.java

@@ -0,0 +1,142 @@
+package com.jeeplus.modules.workmaterialcollect.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.modules.sys.entity.User;
+
+import java.util.Date;
+import java.util.List;
+
+public class WorkMaterialCollectEngineer extends DataEntity<WorkMaterialCollectEngineer> {
+    private String projectName;//工程名称
+    private String projectSite;//工程地点
+    private Date projectStartDate;//工程开始日期
+    private Date projectEndDate;//工程结束日期
+    private String projectStatus;//工程状态
+    private List<WorkMaterialCollectType> workMaterialCollectTypes;//子集
+
+    private String officeName;//部门名称
+    private String officeId;//部门id
+    private String companyId;//公司id
+    private User user;//当前用户
+    private String userName;//用户名
+    private String leader;//
+
+    private String copyStatus;//查询状态时用
+
+    private String copyStatusAdd;//
+
+    public String getCopyStatusAdd() {
+        return copyStatusAdd;
+    }
+
+    public void setCopyStatusAdd(String copyStatusAdd) {
+        this.copyStatusAdd = copyStatusAdd;
+    }
+
+    public String getCopyStatus() {
+        return copyStatus;
+    }
+
+    public void setCopyStatus(String copyStatus) {
+        this.copyStatus = copyStatus;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getProjectSite() {
+        return projectSite;
+    }
+
+    public void setProjectSite(String projectSite) {
+        this.projectSite = projectSite;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getProjectStartDate() {
+        return projectStartDate;
+    }
+
+    public void setProjectStartDate(Date projectStartDate) {
+        this.projectStartDate = projectStartDate;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getProjectEndDate() {
+        return projectEndDate;
+    }
+
+    public void setProjectEndDate(Date projectEndDate) {
+        this.projectEndDate = projectEndDate;
+    }
+
+    public String getProjectStatus() {
+        return projectStatus;
+    }
+
+    public void setProjectStatus(String projectStatus) {
+        this.projectStatus = projectStatus;
+    }
+
+    public List<WorkMaterialCollectType> getWorkMaterialCollectTypes() {
+        return workMaterialCollectTypes;
+    }
+
+    public void setWorkMaterialCollectTypes(List<WorkMaterialCollectType> workMaterialCollectTypes) {
+        this.workMaterialCollectTypes = workMaterialCollectTypes;
+    }
+
+    public String getOfficeName() {
+        return officeName;
+    }
+
+    public void setOfficeName(String officeName) {
+        this.officeName = officeName;
+    }
+
+    public String getOfficeId() {
+        return officeId;
+    }
+
+    public void setOfficeId(String officeId) {
+        this.officeId = officeId;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+    public User getUser() {
+        return user;
+    }
+
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getLeader() {
+        return leader;
+    }
+
+    public void setLeader(String leader) {
+        this.leader = leader;
+    }
+}

+ 147 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectExportTotal.java

@@ -0,0 +1,147 @@
+package com.jeeplus.modules.workmaterialcollect.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+
+import java.util.Date;
+
+public class WorkMaterialCollectExportTotal extends DataEntity<WorkMaterialCollectExportTotal> {
+    private String materialName;  //材料名称
+    private String specifications;  //规格
+    private String unit;  //单位
+    private String describe;  //描述
+    private String userTheParts;  //使用部位
+    private String category;  //类别
+    private Double excludingTax;  //除税市场价
+    private String projectSite;  //地点
+    private Date startDate;  //开始时间
+    private Date endDate;  //结束时间
+    private String projectType;  //工程类型
+    private String projectPart;  //工程部位
+    private String auditOpinion;  //审核意见
+    private String projectName;  //工程名称
+    private String projectTypeId;//工程id
+
+    public String getProjectTypeId() {
+        return projectTypeId;
+    }
+
+    public void setProjectTypeId(String projectTypeId) {
+        this.projectTypeId = projectTypeId;
+    }
+    @ExcelField(title="材料名称", align=2, sort=1)
+    public String getMaterialName() {
+        return materialName;
+    }
+
+    public void setMaterialName(String materialName) {
+        this.materialName = materialName;
+    }
+    @ExcelField(title="规格", align=2, sort=2)
+    public String getSpecifications() {
+        return specifications;
+    }
+
+    public void setSpecifications(String specifications) {
+        this.specifications = specifications;
+    }
+    @ExcelField(title="单位", align=2, sort=3)
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getDescribe() {
+        return describe;
+    }
+
+    public void setDescribe(String describe) {
+        this.describe = describe;
+    }
+    @ExcelField(title="使用部位", align=2, sort=5)
+    public String getUserTheParts() {
+        return userTheParts;
+    }
+
+    public void setUserTheParts(String userTheParts) {
+        this.userTheParts = userTheParts;
+    }
+    @ExcelField(title="类别", align=2, sort=6)
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+    @ExcelField(title="除税市场价", align=2, sort=4)
+    public Double getExcludingTax() {
+        return excludingTax;
+    }
+
+    public void setExcludingTax(Double excludingTax) {
+        this.excludingTax = excludingTax;
+    }
+    @ExcelField(title="地点", align=2, sort=7)
+    public String getProjectSite() {
+        return projectSite;
+    }
+
+    public void setProjectSite(String projectSite) {
+        this.projectSite = projectSite;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+    @ExcelField(title="工程类型", align=2, sort=8)
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
+    @ExcelField(title="工程部位", align=2, sort=9)
+    public String getProjectPart() {
+        return projectPart;
+    }
+
+    public void setProjectPart(String projectPart) {
+        this.projectPart = projectPart;
+    }
+
+    public String getAuditOpinion() {
+        return auditOpinion;
+    }
+
+    public void setAuditOpinion(String auditOpinion) {
+        this.auditOpinion = auditOpinion;
+    }
+    @ExcelField(title="项目名称", align=2, sort=10)
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+}

+ 147 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectTotal.java

@@ -0,0 +1,147 @@
+package com.jeeplus.modules.workmaterialcollect.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+
+import java.util.Date;
+
+public class WorkMaterialCollectTotal extends DataEntity<WorkMaterialCollectTotal> {
+    private String materialName;  //材料名称
+    private String specifications;  //规格
+    private String unit;  //单位
+    private String describe;  //描述
+    private String userTheParts;  //使用部位
+    private String category;  //类别
+    private Double excludingTax;  //除税市场价
+    private String projectSite;  //地点
+    private Date startDate;  //开始时间
+    private Date endDate;  //结束时间
+    private String projectType;  //工程类型
+    private String projectPart;  //工程部位
+    private String auditOpinion;  //审核意见
+    private String projectName;  //工程名称
+    private String projectTypeId;//工程id
+
+    public String getProjectTypeId() {
+        return projectTypeId;
+    }
+
+    public void setProjectTypeId(String projectTypeId) {
+        this.projectTypeId = projectTypeId;
+    }
+    @ExcelField(title="材料名称", align=2, sort=1)
+    public String getMaterialName() {
+        return materialName;
+    }
+
+    public void setMaterialName(String materialName) {
+        this.materialName = materialName;
+    }
+    @ExcelField(title="规格", align=2, sort=2)
+    public String getSpecifications() {
+        return specifications;
+    }
+
+    public void setSpecifications(String specifications) {
+        this.specifications = specifications;
+    }
+    @ExcelField(title="单位", align=2, sort=3)
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getDescribe() {
+        return describe;
+    }
+
+    public void setDescribe(String describe) {
+        this.describe = describe;
+    }
+    @ExcelField(title="使用部位", align=2, sort=5)
+    public String getUserTheParts() {
+        return userTheParts;
+    }
+
+    public void setUserTheParts(String userTheParts) {
+        this.userTheParts = userTheParts;
+    }
+    @ExcelField(title="类别", align=2, sort=6)
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+    @ExcelField(title="除税市场价", align=2, sort=4)
+    public Double getExcludingTax() {
+        return excludingTax;
+    }
+
+    public void setExcludingTax(Double excludingTax) {
+        this.excludingTax = excludingTax;
+    }
+
+    public String getProjectSite() {
+        return projectSite;
+    }
+
+    public void setProjectSite(String projectSite) {
+        this.projectSite = projectSite;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
+
+    public String getProjectPart() {
+        return projectPart;
+    }
+
+    public void setProjectPart(String projectPart) {
+        this.projectPart = projectPart;
+    }
+
+    public String getAuditOpinion() {
+        return auditOpinion;
+    }
+
+    public void setAuditOpinion(String auditOpinion) {
+        this.auditOpinion = auditOpinion;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+}

+ 77 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/entity/WorkMaterialCollectType.java

@@ -0,0 +1,77 @@
+package com.jeeplus.modules.workmaterialcollect.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.modules.sys.entity.Workattachment;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
+
+import java.util.List;
+
+public class WorkMaterialCollectType extends DataEntity<WorkMaterialCollectType> {
+    private String projectType;//工程类型;
+    private String projectPart;//工程部分;
+    private String attachmentId;//文件上传id;
+    private String status;//状态;
+    private String engineerId;//关联id;
+
+    private WorkMaterialCollectEngineer workMaterialCollectEngineer;
+
+    public WorkMaterialCollectEngineer getWorkMaterialCollectEngineer() {
+        return workMaterialCollectEngineer;
+    }
+
+    public void setWorkMaterialCollectEngineer(WorkMaterialCollectEngineer workMaterialCollectEngineer) {
+        this.workMaterialCollectEngineer = workMaterialCollectEngineer;
+    }
+
+    //    private List<Workattachment> workattachments;//附件集合
+    private Workattachment workattachment;//附件集合
+
+
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
+
+    public String getProjectPart() {
+        return projectPart;
+    }
+
+    public void setProjectPart(String projectPart) {
+        this.projectPart = projectPart;
+    }
+
+    public String getAttachmentId() {
+        return attachmentId;
+    }
+
+    public void setAttachmentId(String attachmentId) {
+        this.attachmentId = attachmentId;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getEngineerId() {
+        return engineerId;
+    }
+
+    public void setEngineerId(String engineerId) {
+        this.engineerId = engineerId;
+    }
+
+    public Workattachment getWorkattachment() {
+        return workattachment;
+    }
+
+    public void setWorkattachment(Workattachment workattachment) {
+        this.workattachment = workattachment;
+    }
+}

+ 222 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialCollectEngineerService.java

@@ -0,0 +1,222 @@
+package com.jeeplus.modules.workmaterialcollect.service;
+
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.modules.sys.dao.WorkattachmentDao;
+import com.jeeplus.modules.sys.entity.Workattachment;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectEngineerDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTotalDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTypeDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 确认单 service
+ */
+@Service
+@Transactional(readOnly = true)
+public class WorkMaterialCollectEngineerService extends CrudService<WorkMaterialCollectEngineerDao, WorkMaterialCollectEngineer> {
+    @Autowired
+    private WorkMaterialCollectEngineerDao workMaterialCollectEngineerDao;
+    @Autowired
+    private WorkMaterialCollectTypeDao workMaterialCollectTypeDao;
+    @Autowired
+    private WorkMaterialCollectTotalDao workMaterialCollectTotalDao;
+    @Autowired
+    private WorkattachmentDao workattachmentDao;
+    //查找方法
+    public WorkMaterialCollectEngineer get(String id){ return super.get(id);}
+    //单独保存
+    @Transactional(readOnly = false)
+    public void save(WorkMaterialCollectEngineer workMaterialCollectEngineer){super.save(workMaterialCollectEngineer);}
+    //单独删除
+    @Transactional(readOnly = false)
+    public void delete(WorkMaterialCollectEngineer workMaterialCollectEngineer){super.delete(workMaterialCollectEngineer);}
+
+    @Transactional(readOnly = false)
+    public void updateProjectStatus(WorkMaterialCollectEngineer workMaterialCollectEngineer){
+        workMaterialCollectEngineerDao.updateProjectStatus(workMaterialCollectEngineer);
+    }
+
+    @Transactional
+    public void saveCollectEngineer(WorkMaterialCollectEngineer workMaterialCollectEngineer){
+        String area = workMaterialCollectEngineer.getProjectSite();
+        area = area.substring(area.indexOf(",")+1);
+        String uploadType = "";
+        //获取基本保存信息
+        workMaterialCollectEngineer.setProjectSite(area);
+        workMaterialCollectEngineer.setProjectStatus("0");
+        workMaterialCollectEngineer.setLeader(UserUtils.getUser().getId());
+        workMaterialCollectEngineer.setOfficeId(UserUtils.getUser().getOffice().getId());
+        workMaterialCollectEngineer.setCompanyId(UserUtils.getUser().getCompany().getId());
+        workMaterialCollectEngineer.preInsert();
+        workMaterialCollectEngineerDao.insert(workMaterialCollectEngineer);
+        String engIneerId = workMaterialCollectEngineer.getId();//获取项目id
+        //获取工程类型集合
+        Workattachment workattachment = null;
+        List<WorkMaterialCollectType> workMaterialCollectTypes = workMaterialCollectEngineer.getWorkMaterialCollectTypes();
+        if (null!=workMaterialCollectTypes){
+            for (WorkMaterialCollectType workMaterialCollectType:workMaterialCollectTypes){
+               if (null!=workMaterialCollectType.getProjectType()&&null!=workMaterialCollectType.getProjectPart()){
+                   workattachment = workMaterialCollectType.getWorkattachment();
+                   //保存附件信息
+                   workattachment.setAttachmentId(UserUtils.getUser().getId());
+                   workattachment.setAttachmentUser(UserUtils.getUser().getId());
+                   workattachment.setAttachmentFlag("91");
+                   workattachment.setDivIdType("_workcollecteng");
+                   uploadType = workattachment.getAttachmentName().substring(workattachment.getAttachmentName().lastIndexOf(".")+1);
+                   workattachment.setType(uploadType);//获取类型
+                   workattachment.preInsert();
+                   workattachmentDao.insert(workattachment);
+                   //保存工程类型
+                   workMaterialCollectType.setAttachmentId(workattachment.getId());
+                   workMaterialCollectType.setEngineerId(engIneerId);
+                   workMaterialCollectType.setStatus("0");
+                   workMaterialCollectType.preInsert();
+                   workMaterialCollectTypeDao.insert(workMaterialCollectType);//保存工程类型信息
+               }
+            }
+        }
+    }
+
+    //查看
+    public WorkMaterialCollectEngineer findCollectEng(String id){
+        return workMaterialCollectEngineerDao.findCollectEng(id);
+    }
+
+    //修改
+    @Transactional(readOnly = false)
+    public void updateCollectEngineer(WorkMaterialCollectEngineer workMaterialCollectEngineer){
+        //存在的id
+        List<String> strings = new ArrayList<String>();
+        for (WorkMaterialCollectType work:workMaterialCollectEngineer.getWorkMaterialCollectTypes()){
+            if (null!=work.getId()){
+                strings.add(work.getId());
+            }
+        }
+        //查找项目集合
+        WorkMaterialCollectEngineer workEng = workMaterialCollectEngineerDao.get(workMaterialCollectEngineer.getId());
+        //获取当前状态
+        workMaterialCollectEngineer.setProjectStatus(workEng.getProjectStatus());
+        //查找类型集合
+        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+        workMaterialCollectType.setEngineerId(workEng.getId());
+        //工程集合
+        List<WorkMaterialCollectType> workType = workMaterialCollectTypeDao.findList(workMaterialCollectType);
+        Workattachment workattachment = new Workattachment();
+        boolean flag = true;
+        for (WorkMaterialCollectType workMaterialCollectType1:workType){
+            flag = true;
+            for (int i = 0; i < strings.size(); i++) {
+                if (workMaterialCollectType1.getId().equals(strings.get(i))){
+                    flag = false;
+//                    strings.remove(i);
+//                    i--;
+                }
+            }
+            if (flag){
+                workMaterialCollectTypeDao.delete(workMaterialCollectType1);
+                workattachment = new Workattachment();
+                workattachment.setId(workMaterialCollectType1.getId());
+                workattachmentDao.delete(workattachment);
+            }
+        }
+        saveAddWorkEng(workMaterialCollectEngineer);
+    }
+
+    @Transactional(readOnly = false)
+    public void saveAddWorkEng(WorkMaterialCollectEngineer workMaterialCollectEngineer){
+        workMaterialCollectEngineer.preUpdate();
+        workMaterialCollectEngineerDao.update(workMaterialCollectEngineer);
+        List<WorkMaterialCollectType> workMaterialCollectTypes = workMaterialCollectEngineer.getWorkMaterialCollectTypes();
+        Workattachment workattachment = null;
+        String uploadType = "";
+        if (null!=workMaterialCollectTypes&&workMaterialCollectTypes.size()>0){
+            for (WorkMaterialCollectType workMaterialCollectType:workMaterialCollectTypes){
+                if (null==workMaterialCollectType.getId()){
+                    if (null!=workMaterialCollectType.getProjectType()&&null!=workMaterialCollectType.getProjectPart()){
+                        workattachment = workMaterialCollectType.getWorkattachment();
+                        //保存附件信息
+                        workattachment.setAttachmentId(UserUtils.getUser().getId());
+                        workattachment.setAttachmentUser(UserUtils.getUser().getId());
+                        workattachment.setAttachmentFlag("91");
+                        workattachment.setDivIdType("_workcollecteng");
+                        uploadType = workattachment.getAttachmentName().substring(workattachment.getAttachmentName().lastIndexOf(".")+1);
+                        workattachment.setType(uploadType);//获取类型
+                        workattachment.preInsert();
+                        workattachmentDao.insert(workattachment);
+                        //保存工程类型
+                        workMaterialCollectType.setAttachmentId(workattachment.getId());
+                        workMaterialCollectType.setEngineerId(workMaterialCollectEngineer.getId());
+                        workMaterialCollectType.setStatus("0");
+                        workMaterialCollectType.preInsert();
+                        workMaterialCollectTypeDao.insert(workMaterialCollectType);//保存工程类型信息
+                    }
+                }
+            }
+        }
+    }
+
+    //取消已经确认过的采集单
+    @Transactional(readOnly = false)
+    public void cancelWorkInformation(WorkMaterialCollectType workMaterialCollectType,String itemId){
+        workMaterialCollectTypeDao.updateStatusId(workMaterialCollectType.getId());
+        //取消(删除)上传的确认单
+        List<String> strings = new ArrayList<String>();
+        strings.add(workMaterialCollectType.getId());
+        if (null!=strings&&strings.size()>0){
+            workMaterialCollectTotalDao.deleteWorkTotal(strings);
+        }
+        //改变项目信息状态
+        WorkMaterialCollectEngineer workEngineer = new WorkMaterialCollectEngineer();
+        workEngineer.setId(itemId);
+        workEngineer.preUpdate();
+        workEngineer.setProjectStatus("0");
+        workMaterialCollectEngineerDao.updateProjectStatus(workEngineer);
+//        //批量删除用的集合
+//        List<String> strings = new ArrayList<String>();
+//        //获取所有数据
+//        WorkMaterialCollectEngineer workEngineer = workMaterialCollectEngineerDao.get(workMaterialCollectEngineer.getId());
+//        //获取工程类型数据
+//        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+//        workMaterialCollectType.setEngineerId(workEngineer.getId());
+//        List<WorkMaterialCollectType> list = workMaterialCollectTypeDao.findList(workMaterialCollectType);
+//        if (null!=list&&list.size()>0){
+//            for (WorkMaterialCollectType workType:list){
+//                workType.setStatus("0");
+//                //获取关联确认单id
+//                strings.add(workType.getId());
+//            }
+//        }
+//        //批量修改状态
+//
+    }
+    //删除未确认的采集单
+    @Transactional(readOnly = false)
+    public void deleteWorkInformation(WorkMaterialCollectEngineer workMaterialCollectEngineer){
+        WorkMaterialCollectEngineer workEngineer = workMaterialCollectEngineerDao.get(workMaterialCollectEngineer.getId());
+        //删除项目名称表
+        workMaterialCollectEngineerDao.delete(workEngineer);
+        //查找项目类型表
+        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+        workMaterialCollectType.setEngineerId(workEngineer.getId());
+        List<WorkMaterialCollectType> list = workMaterialCollectTypeDao.findList(workMaterialCollectType);
+        if (null!=list&&list.size()>0){
+            //删除文件上传的表
+            for (WorkMaterialCollectType type:list){
+//                if (type.getWorkattachment())
+            }
+        }
+        //删除类型表
+        workMaterialCollectTypeDao.deleteEngId(workEngineer.getId());
+
+    }
+}

+ 204 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialCollectTotalService.java

@@ -0,0 +1,204 @@
+package com.jeeplus.modules.workmaterialcollect.service;
+
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectEngineerDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTotalDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTypeDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectExportTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import org.apache.poi.ss.usermodel.Row;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.lang.reflect.Field;
+import java.util.*;
+
+@Service
+@Transactional(readOnly = true)
+public class WorkMaterialCollectTotalService extends CrudService<WorkMaterialCollectTotalDao, WorkMaterialCollectTotal> {
+    @Autowired
+    private WorkMaterialCollectEngineerDao workMaterialCollectEngineerDao;
+    @Autowired
+    private WorkMaterialCollectTypeDao workMaterialCollectTypeDao;
+    @Autowired
+    private WorkMaterialCollectTotalDao workMaterialCollectTotalDao;
+    //查找
+    public WorkMaterialCollectTotal get(String id){
+        return super.get(id);
+    }
+    //保存
+    @Transactional(readOnly = false)
+    public void save(WorkMaterialCollectTotal workMaterialCollectTotal){
+        super.save(workMaterialCollectTotal);
+    }
+    //修改
+    @Transactional(readOnly = false)
+    public void delete(WorkMaterialCollectTotal workMaterialCollectTotal){
+        super.delete(workMaterialCollectTotal);
+    }
+
+
+    //多条件查询
+    public List<WorkMaterialCollectTotal> findListTypesId(List<WorkMaterialCollectType> list){
+       return workMaterialCollectTotalDao.findAllTypeTotal(list);
+    }
+
+    //修改备注信息
+    @Transactional(readOnly = false)
+    public void updateRemarksService(WorkMaterialCollectType workMaterialCollectType){
+        workMaterialCollectTypeDao.updateRemarks(workMaterialCollectType);
+        workMaterialCollectTotalDao.updateRemarks(workMaterialCollectType);
+    }
+    //只用于导出
+    public List<WorkMaterialCollectExportTotal> findListExcel(WorkMaterialCollectExportTotal workMaterialCollectExportTotal){
+        return workMaterialCollectTotalDao.findListExcel(workMaterialCollectExportTotal);
+    }
+
+    //保存
+    @Transactional(readOnly = false)
+    public void insertList(List<WorkMaterialCollectTotal> workMaterialCollectTotals){
+        for (WorkMaterialCollectTotal workMaterialCollectTotal:workMaterialCollectTotals){
+            workMaterialCollectTotal.preInsert();
+        }
+        workMaterialCollectTotalDao.insertList(workMaterialCollectTotals);
+    }
+
+    public double getDouble(String excludingTax){
+        double tax = 0.0;
+        if (null != excludingTax && !"".equals(excludingTax)){
+            tax = Double.parseDouble(excludingTax);
+        }
+        return tax;
+    }
+
+    /**
+
+     * 比较两个实体属性值,返回一个boolean,true则表时两个对象中的属性值无差异
+
+     * @param obj1 进行属性比较的对象1
+
+     * @param obj2 进行属性比较的对象2
+
+     * @return 属性差异比较结果boolean
+
+     */
+    public static boolean compareObject(Object obj1, Object obj2) throws Exception{
+        Map<String, String> result = new HashMap<String, String>();
+        if (obj1.getClass() == obj2.getClass()) {
+            Field[] fs = obj1.getClass().getDeclaredFields();// 获取所有属性
+            for (Field field : fs) {
+                // 设置访问性,反射类的方法,设置为true就可以访问private修饰的东西,否则无法访问
+                field.setAccessible(true);
+                Object v1 = field.get(obj1);
+                Object v2 = field.get(obj2);
+                result.put(field.getName(), String.valueOf(equals(v1, v2)));
+            }
+        }
+        Collection<String> collection = result.values();
+        for (String str : collection) {
+            if ("false".equals(str)) {
+                return false;
+            }
+        }
+        return true;
+    }
+    private static boolean equals(Object obj1, Object obj2) {
+        if (obj1 == obj2) {
+            return true;
+        }
+        return obj1.equals(obj2);
+    }
+
+
+    //导入去重
+    public List<WorkMaterialCollectTotal> getDuplicateRemoval(List<WorkMaterialCollectTotal> workMaterialCollectTotals){
+        List<WorkMaterialCollectTotal> workMaterialCollectTotalList = new ArrayList<WorkMaterialCollectTotal>();
+        boolean flag = false;
+        try{
+            for (WorkMaterialCollectTotal workMaterialCollectTotal:workMaterialCollectTotals){
+                for (WorkMaterialCollectTotal workTotal:workMaterialCollectTotalList){
+                    flag = compareObject(workMaterialCollectTotal,workTotal);
+                    if (flag){
+                        break;
+                    }
+                }
+                if (!flag){
+                    workMaterialCollectTotalList.add(workMaterialCollectTotal);
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return workMaterialCollectTotalList;
+    }
+
+    //导入后追加工程,项目信息
+    @Transactional(readOnly = false)
+    public void getAdditionalInformation(List<WorkMaterialCollectTotal> workMaterialCollectTotals,String itemHideId, String projecTypeId,String remarks){
+        if (null!=workMaterialCollectTotals){
+            WorkMaterialCollectEngineer workMaterialCollectEngineer = workMaterialCollectEngineerDao.get(itemHideId);
+            //获取工程
+            WorkMaterialCollectType workMaterialCollectType = workMaterialCollectTypeDao.get(projecTypeId);
+            workMaterialCollectTotalDao.deleteProjectTypeId(projecTypeId);
+            for (WorkMaterialCollectTotal workMaterialCollectTotal:workMaterialCollectTotals){
+                //开始时间
+                workMaterialCollectTotal.setStartDate(workMaterialCollectEngineer.getProjectStartDate());
+                //结束时间
+                workMaterialCollectTotal.setEndDate(workMaterialCollectEngineer.getProjectEndDate());
+                //工程类型
+                workMaterialCollectTotal.setProjectType(workMaterialCollectType.getProjectType());
+                //工程部位
+                workMaterialCollectTotal.setProjectPart(workMaterialCollectType.getProjectPart());
+                //项目名称
+                workMaterialCollectTotal.setProjectName(workMaterialCollectEngineer.getProjectName());
+                //工程类型id
+                workMaterialCollectTotal.setProjectTypeId(workMaterialCollectType.getId());
+                //工程地点
+                workMaterialCollectTotal.setProjectSite(workMaterialCollectEngineer.getProjectSite());
+                //增加备注
+                if (null!=remarks && !"".equals(remarks)){
+                    workMaterialCollectTotal.setRemarks(remarks);
+                }
+                //新增列表
+                workMaterialCollectTotal.preInsert();
+            }
+            workMaterialCollectTotalDao.insertList(workMaterialCollectTotals);
+            //修改状态
+            WorkMaterialCollectType workMaterType = new WorkMaterialCollectType();
+            workMaterType.setStatus("1");
+            workMaterType.setId(projecTypeId);
+            workMaterType.preUpdate();
+            workMaterialCollectTypeDao.updateStatus(workMaterType);
+        }
+    }
+
+    //导入获取基本信息类
+    public List<WorkMaterialCollectTotal> getMaterialCollectImportExcel(ImportExcel importExcel)  {
+        int lastRow = importExcel.getLastDataRowNum();
+        List<WorkMaterialCollectTotal> list = new ArrayList<WorkMaterialCollectTotal>();
+        WorkMaterialCollectTotal workMaterialCollectTotal = null;
+        String materialName = "";//材料名称
+        String excludingTax ="";//除税市场价
+        for(int i=2; i<lastRow;i++){
+            workMaterialCollectTotal = new WorkMaterialCollectTotal();
+            Row row = importExcel.getRow(i);
+            materialName = (String)importExcel.getCellValue(row,1);
+            if (StringUtils.isNotBlank(materialName)){
+                workMaterialCollectTotal.setMaterialName(materialName);
+                workMaterialCollectTotal.setSpecifications((String)importExcel.getCellValue(row,2));
+                workMaterialCollectTotal.setUnit((String)importExcel.getCellValue(row,3));
+                workMaterialCollectTotal.setExcludingTax(getDouble((String)importExcel.getCellValue(row,4)));
+                workMaterialCollectTotal.setUserTheParts((String)importExcel.getCellValue(row,5));
+                workMaterialCollectTotal.setCategory((String)importExcel.getCellValue(row,6));
+                workMaterialCollectTotal.setAuditOpinion((String)importExcel.getCellValue(row,7));
+                list.add(workMaterialCollectTotal);
+            }
+        }
+        return list;
+    }
+}

+ 36 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialCollectTypeService.java

@@ -0,0 +1,36 @@
+package com.jeeplus.modules.workmaterialcollect.service;
+
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectEngineerDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTypeDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import com.lowagie.text.Row;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+@Transactional(readOnly = true)
+public class WorkMaterialCollectTypeService extends CrudService<WorkMaterialCollectTypeDao, WorkMaterialCollectType>{
+    @Autowired
+    private WorkMaterialCollectTypeDao workMaterialCollectTypeDao;
+    @Autowired
+    private WorkMaterialCollectEngineerDao workMaterialCollectEngineerDao;
+    //查找方法
+    public WorkMaterialCollectType get(String id){return super.get(id);}
+    //保存方法
+    @Transactional(readOnly = false)
+    public void save(WorkMaterialCollectType workMaterialCollectType){super.save(workMaterialCollectType);}
+    //删除方法
+    @Transactional(readOnly = false)
+    public void delete(WorkMaterialCollectType workMaterialCollectType){super.delete(workMaterialCollectType);}
+
+    //添加备注
+    @Transactional(readOnly = false)
+    public void updateRemarks(WorkMaterialCollectType workMaterialCollectType){
+        workMaterialCollectTypeDao.updateRemarks(workMaterialCollectType);
+    }
+}

+ 28 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/service/WorkMaterialModelListService.java

@@ -0,0 +1,28 @@
+package com.jeeplus.modules.workmaterialcollect.service;
+
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectEngineerDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTotalDao;
+import com.jeeplus.modules.workmaterialcollect.dao.WorkMaterialCollectTypeDao;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 材料价格采集手机端
+ */
+@Service
+public class WorkMaterialModelListService {
+    @Autowired
+    private WorkMaterialCollectTotalDao workMaterialCollectTotalDao;
+    @Autowired
+    private WorkMaterialCollectTypeDao workMaterialCollectTypeDao;
+    @Autowired
+    private WorkMaterialCollectEngineerDao workMaterialCollectEngineerDao;
+
+    //首次进入,默认查询调教
+    public WorkMaterialCollectTotal getDefaultWorkService(WorkMaterialCollectTotal workMaterialCollectTotal,String itemName){
+        workMaterialCollectTotal = new WorkMaterialCollectTotal();
+        workMaterialCollectTotal.setProjectSite("南京");
+        return workMaterialCollectTotal;
+    }
+}

+ 161 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectEngineerController.java

@@ -0,0 +1,161 @@
+package com.jeeplus.modules.workmaterialcollect.web;
+
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.Workattachment;
+import com.jeeplus.modules.sys.service.WorkattachmentService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectEngineerService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTypeService;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 确认单 -- project
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/workMaterialCollect/engineer")
+public class WorkMaterialCollectEngineerController extends BaseController {
+    @Autowired
+    private WorkMaterialCollectEngineerService workMaterialCollectEngineerService;
+    @Autowired
+    private WorkMaterialCollectTypeService workMaterialCollectTypeService;
+    @Autowired
+    private WorkattachmentService workattachmentService;
+    //查找方法
+    @ModelAttribute
+    public WorkMaterialCollectEngineer get(@RequestParam(required = false)String id){
+        WorkMaterialCollectEngineer entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = workMaterialCollectEngineerService.get(id);
+        }
+        if (entity == null){
+            entity = new WorkMaterialCollectEngineer();
+        }
+        return entity;
+    }
+
+    /**
+     * 物品一览表列表页面
+     */
+    @RequiresPermissions("workMaterialCollect:engineer:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(WorkMaterialCollectEngineer workMaterialCollectEngineer, HttpServletRequest request, HttpServletResponse response, Model model) {
+//        workMaterialCollectEngineer.setProjectStatus("0");
+//        workMaterialCollectEngineer.setCopyStatus("0");//0-为不存在
+//        workMaterialCollectEngineer.setCopyStatusAdd("0");
+        Page<WorkMaterialCollectEngineer> page = workMaterialCollectEngineerService.findPage(new Page<WorkMaterialCollectEngineer>(request, response), workMaterialCollectEngineer);
+        model.addAttribute("page", page);
+        return "modules/workmaterialcollect/workMaterialCollectEngineerList";
+    }
+
+    /*
+        查看,新增,修改
+     */
+    @RequiresPermissions(value={"workMaterialCollect:engineer:view","workMaterialCollect:engineer:add","workMaterialCollect:engineer:edit"},logical= Logical.OR)
+    @RequestMapping(value = "form")
+    public String form(WorkMaterialCollectEngineer workMaterialCollectEngineer,Model model,HttpServletRequest request){
+        String flat=request.getParameter("tabId");
+        if("1".equals(flat)){
+            workMaterialCollectEngineer.setOfficeName(UserUtils.getSelectOffice().getTopCompany());
+            workMaterialCollectEngineer.setOfficeId(UserUtils.getSelectOffice().getId());
+            workMaterialCollectEngineer.setCompanyId(UserUtils.getSelectCompany().getId());
+            workMaterialCollectEngineer.setLeader(UserUtils.getUser().getId());
+            workMaterialCollectEngineer.setUser(UserUtils.getUser());
+            workMaterialCollectEngineer.setUserName(UserUtils.getUser().getName());
+            model.addAttribute("workMaterialCollectEngineer",workMaterialCollectEngineer);
+        }else {
+            //修改展示
+            WorkMaterialCollectEngineer workMaterialCollectEngineer1 = workMaterialCollectEngineerService.get(workMaterialCollectEngineer.getId());
+            //回显采集人和部门
+            User user = UserUtils.get(workMaterialCollectEngineer1.getLeader());
+            workMaterialCollectEngineer1.setUserName(user.getName());
+            Office office = UserUtils.getOfficeById(workMaterialCollectEngineer1.getOfficeId());
+            workMaterialCollectEngineer1.setOfficeName(office.getName());
+            WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+            workMaterialCollectType.setEngineerId(workMaterialCollectEngineer1.getId());
+            Workattachment workattachment = new Workattachment();
+            List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+            for (WorkMaterialCollectType workMaterialCollectType1:list){
+                workattachment = workattachmentService.get(workMaterialCollectType1.getAttachmentId());
+                workMaterialCollectType1.setWorkattachment(workattachment);
+            }
+            workMaterialCollectEngineer1.setWorkMaterialCollectTypes(list);
+            model.addAttribute("workMaterialCollectEngineer",workMaterialCollectEngineer1);
+        }
+        return "modules/workmaterialcollect/workMaterialCollectEngineerForm";
+    }
+
+    /**
+     * 查看,增加,编辑收文管理表单页面
+     */
+    @RequiresPermissions(value={"workMaterialCollect:engineer:view"},logical=Logical.OR)
+    @RequestMapping(value = "view")
+    public String view(WorkMaterialCollectEngineer workMaterialCollectEngineer,Model model){
+//        WorkMaterialCollectEngineer workMaterialCollectEngineer1 = workMaterialCollectEngineerService.findCollectEng(workMaterialCollectEngineer.getId());
+        WorkMaterialCollectEngineer workMaterialCollectEngineer1 = workMaterialCollectEngineerService.get(workMaterialCollectEngineer.getId());
+        //回显采集人和部门
+        User user = UserUtils.get(workMaterialCollectEngineer1.getLeader());
+        workMaterialCollectEngineer1.setUserName(user.getName());
+        Office office = UserUtils.getOfficeById(workMaterialCollectEngineer1.getOfficeId());
+        workMaterialCollectEngineer1.setOfficeName(office.getName());
+        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+        workMaterialCollectType.setEngineerId(workMaterialCollectEngineer1.getId());
+        Workattachment workattachment = new Workattachment();
+        List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+        for (WorkMaterialCollectType workMaterialCollectType1:list){
+            workattachment = workattachmentService.get(workMaterialCollectType1.getAttachmentId());
+            workMaterialCollectType1.setWorkattachment(workattachment);
+        }
+        workMaterialCollectEngineer1.setWorkMaterialCollectTypes(list);
+        model.addAttribute("workMaterialCollectEngineer",workMaterialCollectEngineer1);
+        return "modules/workmaterialcollect/workMaterialCollectEngineerView";
+    }
+
+    @RequestMapping(value = "save")
+    public String save(WorkMaterialCollectEngineer workMaterialCollectEngineer,Model model, RedirectAttributes redirectAttributes){
+        //判断修改还是删除
+        try{
+            if (!"".equals(workMaterialCollectEngineer.getId())){
+                //修改
+                workMaterialCollectEngineerService.updateCollectEngineer(workMaterialCollectEngineer);
+            }else {
+                //保存
+                workMaterialCollectEngineerService.saveCollectEngineer(workMaterialCollectEngineer);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        //获取工程类型集合
+        return "redirect:"+ Global.getAdminPath()+"/workMaterialCollect/engineer/?repage";
+    }
+
+    //删除 未确认的 采集单
+    @RequestMapping(value = "delete")
+    public String delete(WorkMaterialCollectEngineer workMaterialCollectEngineer){
+        try{
+            workMaterialCollectEngineerService.deleteWorkInformation(workMaterialCollectEngineer);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "redirect:"+ Global.getAdminPath()+"/workMaterialCollect/engineer/?repage";
+    }
+}

+ 217 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectEngineerSureController.java

@@ -0,0 +1,217 @@
+package com.jeeplus.modules.workmaterialcollect.web;
+
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.Workattachment;
+import com.jeeplus.modules.sys.service.WorkattachmentService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workitemcollar.entity.WorkItemCollar;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectEngineerService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTotalService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTypeService;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.ConstraintViolationException;
+import java.util.List;
+
+/**
+ * 确认采集单 -- project
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/workMaterialCollect/engineerSure")
+public class WorkMaterialCollectEngineerSureController extends BaseController {
+    @Autowired
+    private WorkMaterialCollectEngineerService workMaterialCollectEngineerService;
+    @Autowired
+    private WorkMaterialCollectTypeService workMaterialCollectTypeService;
+    @Autowired
+    private WorkattachmentService workattachmentService;
+    @Autowired
+    private WorkMaterialCollectTotalService workMaterialCollectTotalService;
+    //查找方法
+    @ModelAttribute
+    public WorkMaterialCollectEngineer get(@RequestParam(required = false)String id){
+        WorkMaterialCollectEngineer entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = workMaterialCollectEngineerService.get(id);
+        }
+        if (entity == null){
+            entity = new WorkMaterialCollectEngineer();
+        }
+        return entity;
+    }
+
+    /**
+     * 物品一览表列表页面
+     */
+    @RequiresPermissions("workMaterialCollect:engineerSure:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(WorkMaterialCollectEngineer workMaterialCollectEngineer, HttpServletRequest request, HttpServletResponse response, Model model) {
+//        if (null!=workMaterialCollectEngineer){
+//            if (null!=workMaterialCollectEngineer.getProjectStatus()&&!"".equals(workMaterialCollectEngineer.getProjectStatus())){
+//                if (workMaterialCollectEngineer.getProjectStatus().equals("1")){
+//                    workMaterialCollectEngineer.setProjectStatus("1");
+//                    workMaterialCollectEngineer.setCopyStatus("2");//部分已经上传
+//                    workMaterialCollectEngineer.setCopyStatusAdd("1");
+//                }
+//                if (workMaterialCollectEngineer.getProjectStatus().equals("0")){
+//                    workMaterialCollectEngineer.setProjectStatus("0");
+//                    workMaterialCollectEngineer.setCopyStatus("0");//部分已经上传
+//                    workMaterialCollectEngineer.setCopyStatusAdd("0");
+//                }
+//            }
+//        }
+        Page<WorkMaterialCollectEngineer> page = workMaterialCollectEngineerService.findPage(new Page<WorkMaterialCollectEngineer>(request, response), workMaterialCollectEngineer);
+        model.addAttribute("page", page);
+        return "modules/workmaterialcollect/workMaterialCollectEngineerSureList";
+    }
+
+    /*
+        查看,新增,修改
+     */
+    @RequiresPermissions(value={"workMaterialCollect:engineerSure:view","workMaterialCollect:engineerSure:add","workMaterialCollect:engineerSure:edit"},logical= Logical.OR)
+    @RequestMapping(value = "form")
+    public String form(WorkMaterialCollectEngineer workMaterialCollectEngineer,Model model,HttpServletRequest request){
+        String flat=request.getParameter("tabId");
+        if("1".equals(flat)){
+            workMaterialCollectEngineer.setOfficeName(UserUtils.getSelectOffice().getTopCompany());
+            workMaterialCollectEngineer.setOfficeId(UserUtils.getSelectOffice().getId());
+            workMaterialCollectEngineer.setCompanyId(UserUtils.getSelectCompany().getId());
+            workMaterialCollectEngineer.setLeader(UserUtils.getUser().getId());
+            workMaterialCollectEngineer.setUser(UserUtils.getUser());
+            workMaterialCollectEngineer.setUserName(UserUtils.getUser().getName());
+            model.addAttribute("workMaterialCollectEngineer",workMaterialCollectEngineer);
+        }else {
+            //修改展示
+            WorkMaterialCollectEngineer workMaterialCollectEngineer1 = workMaterialCollectEngineerService.get(workMaterialCollectEngineer.getId());
+            //回显采集人和部门
+            User user = UserUtils.get(workMaterialCollectEngineer1.getLeader());
+            workMaterialCollectEngineer1.setUserName(user.getName());
+            Office office = UserUtils.getOfficeById(workMaterialCollectEngineer1.getOfficeId());
+            workMaterialCollectEngineer1.setOfficeName(office.getName());
+            WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+            workMaterialCollectType.setEngineerId(workMaterialCollectEngineer1.getId());
+            Workattachment workattachment = new Workattachment();
+            List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+            for (WorkMaterialCollectType workMaterialCollectType1:list){
+                if (workMaterialCollectType1.getStatus().equals("0")){
+                    workMaterialCollectType1.setStatus("未上传");
+                }else {
+                    workMaterialCollectType1.setStatus("已上传");
+                }
+                workattachment = workattachmentService.get(workMaterialCollectType1.getAttachmentId());
+                workMaterialCollectType1.setWorkattachment(workattachment);
+            }
+            workMaterialCollectEngineer1.setWorkMaterialCollectTypes(list);
+            model.addAttribute("workMaterialCollectEngineer",workMaterialCollectEngineer1);
+        }
+        return "modules/workmaterialcollect/workMaterialCollectEngineerSureForm";
+    }
+
+    /**
+     * 查看,增加,编辑收文管理表单页面
+     */
+    @RequiresPermissions(value={"workMaterialCollect:engineerSure:view"},logical=Logical.OR)
+    @RequestMapping(value = "view")
+    public String view(WorkMaterialCollectEngineer workMaterialCollectEngineer,Model model){
+//        WorkMaterialCollectEngineer workMaterialCollectEngineer1 = workMaterialCollectEngineerService.findCollectEng(workMaterialCollectEngineer.getId());
+        WorkMaterialCollectEngineer workMaterialCollectEngineer1 = workMaterialCollectEngineerService.get(workMaterialCollectEngineer.getId());
+        //回显采集人和部门
+        User user = UserUtils.get(workMaterialCollectEngineer1.getLeader());
+        workMaterialCollectEngineer1.setUserName(user.getName());
+        Office office = UserUtils.getOfficeById(workMaterialCollectEngineer1.getOfficeId());
+        workMaterialCollectEngineer1.setOfficeName(office.getName());
+        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+        workMaterialCollectType.setEngineerId(workMaterialCollectEngineer1.getId());
+        Workattachment workattachment = new Workattachment();
+        List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+        for (WorkMaterialCollectType workMaterialCollectType1:list){
+            workattachment = workattachmentService.get(workMaterialCollectType1.getAttachmentId());
+            workMaterialCollectType1.setWorkattachment(workattachment);
+        }
+        workMaterialCollectEngineer1.setWorkMaterialCollectTypes(list);
+        model.addAttribute("workMaterialCollectEngineer",workMaterialCollectEngineer1);
+        return "modules/workmaterialcollect/workMaterialCollectEngineerView";
+    }
+
+    @RequestMapping(value = "save")
+    public String save(WorkMaterialCollectEngineer workMaterialCollectEngineer,Model model, RedirectAttributes redirectAttributes){
+        //判断修改还是删除
+        try{
+            if (!"".equals(workMaterialCollectEngineer.getId())){
+                //修改
+                workMaterialCollectEngineerService.updateCollectEngineer(workMaterialCollectEngineer);
+            }else {
+                //保存
+                workMaterialCollectEngineerService.saveCollectEngineer(workMaterialCollectEngineer);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        //获取工程类型集合
+        return "redirect:"+ Global.getAdminPath()+"/workMaterialCollect/engineer/?repage";
+    }
+
+    //修改备注信息
+    @ResponseBody
+    @RequestMapping(value = "updateRemarks")
+    public AjaxJson updateRemarksController(WorkMaterialCollectType workMaterialCollectType){
+        AjaxJson ajaxJson = new AjaxJson();
+        try {
+            workMaterialCollectTotalService.updateRemarksService(workMaterialCollectType);
+         ajaxJson.setSuccess(true);
+         ajaxJson.setMsg("备注成功");
+         return ajaxJson;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        ajaxJson.setSuccess(false);
+        ajaxJson.setMsg("备注失败");
+        return ajaxJson;
+    }
+    //取消上传文件
+    @ResponseBody
+    @RequestMapping(value = "delete")
+    public AjaxJson deleteWorkTotal(WorkMaterialCollectType workMaterialCollectType,String itemId) throws Exception{
+        AjaxJson j = new AjaxJson();
+        try {
+            //修改状态
+            workMaterialCollectEngineerService.cancelWorkInformation(workMaterialCollectType,itemId);
+            j.setSuccess(true);
+            j.setMsg("取消确认单成功");
+            return j;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+//        return "redirect:"+ Global.getAdminPath()+"/workMaterialCollect/engineerSure/view?repage";
+        j.setSuccess(false);
+        j.setMsg("取消确认单失败");
+        return j;
+    }
+
+    //查看确认单
+    @RequestMapping(value = "sureTotalView")
+    public String list(WorkMaterialCollectTotal workMaterialCollectTotal,HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<WorkMaterialCollectTotal> page = workMaterialCollectTotalService.findPage(new Page<WorkMaterialCollectTotal>(request, response), workMaterialCollectTotal);
+        model.addAttribute("page", page);
+        return "modules/workmaterialcollect/workMaterialCollectTotalSureView";
+    }
+}

+ 173 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectTotalController.java

@@ -0,0 +1,173 @@
+package com.jeeplus.modules.workmaterialcollect.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectExportTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectEngineerService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTotalService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTypeService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.ConstraintViolationException;
+import java.util.List;
+
+@Controller
+@RequestMapping(value = "${adminPath}/workMaterialCollect/total")
+public class WorkMaterialCollectTotalController extends BaseController {
+    @Autowired
+    private WorkMaterialCollectEngineerService workMaterialCollectEngineerService;
+    @Autowired
+    private WorkMaterialCollectTypeService workMaterialCollectTypeService;
+    @Autowired
+    private WorkMaterialCollectTotalService workMaterialCollectTotalService;
+
+    @ModelAttribute
+    public WorkMaterialCollectTotal get(@RequestParam(required = false)String id){
+        WorkMaterialCollectTotal entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = workMaterialCollectTotalService.get(id);
+        }
+        if (entity == null){
+            entity = new WorkMaterialCollectTotal();
+        }
+        return entity;
+    }
+
+    /**
+     * 确认单采集列表
+     */
+    @RequiresPermissions("workMaterialCollect:total:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(WorkMaterialCollectTotal workMaterialCollectTotal, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<WorkMaterialCollectTotal> page = workMaterialCollectTotalService.findPage(new Page<WorkMaterialCollectTotal>(request, response), workMaterialCollectTotal);
+        model.addAttribute("page", page);
+        return "modules/workmaterialcollect/workMaterialCollectTotalList";
+    }
+
+    /**
+     * 导入Excel数据
+
+     */
+    @RequiresPermissions("workitemcollar:total:import")
+    @RequestMapping(value = "import",method= RequestMethod.POST)
+    public String importFile(@RequestParam(value = "file")MultipartFile file, String itemHideId, String projectTypeId,String remarks,RedirectAttributes redirectAttributes){
+        try {
+            StringBuilder failureMsg = new StringBuilder();
+            ImportExcel ei = new ImportExcel(file, 1, 0);
+            List<WorkMaterialCollectTotal> materialCollects = ei.getDataList(WorkMaterialCollectTotal.class);
+            List<WorkMaterialCollectTotal> duplicateRemoval = workMaterialCollectTotalService.getDuplicateRemoval(materialCollects);
+//            List<WorkMaterialCollectTotal> materialCollects = workMaterialCollectTotalService.getMaterialCollectImportExcel(ei);
+            workMaterialCollectTotalService.getAdditionalInformation(duplicateRemoval,itemHideId,projectTypeId,remarks);
+
+            //根据项目id查找工程类型,判断是否全部上传
+            WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+            workMaterialCollectType.setStatus("0");
+            workMaterialCollectType.setEngineerId(itemHideId);
+            List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+            WorkMaterialCollectEngineer workMaterialCollectEngineer = new WorkMaterialCollectEngineer();
+            workMaterialCollectEngineer.setId(itemHideId);
+            if (list.size()<1){
+                workMaterialCollectEngineer.setProjectStatus("1");
+                workMaterialCollectEngineerService.updateProjectStatus(workMaterialCollectEngineer);
+            }
+//            ajaxJson.setSuccess(true);
+//            ajaxJson.setMsg("已经成功上传"+materialCollects.size()+"确认单记录");
+//            return ajaxJson;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "上传确认单采集记录失败!失败信息:"+e.getMessage());
+        }
+//        ajaxJson.setSuccess(false);
+//        ajaxJson.setMsg("上传失败");
+        return "redirect:"+ Global.getAdminPath()+"/workMaterialCollect/engineerSure/?repage";
+    }
+//    @ResponseBody
+//    @RequestMapping("/import1")
+//    public AjaxJson importFileAjs(@RequestParam(value = "file")MultipartFile file, String itemHideId, String projectTypeId, String remarks) throws Exception{
+//        AjaxJson ajaxJson = new AjaxJson();
+////        try {
+//            StringBuilder failureMsg = new StringBuilder();
+//            ImportExcel ei = new ImportExcel(file, 1, 0);
+//            List<WorkMaterialCollectTotal> materialCollects = ei.getDataList(WorkMaterialCollectTotal.class);
+//            List<WorkMaterialCollectTotal> duplicateRemoval = workMaterialCollectTotalService.getDuplicateRemoval(materialCollects);
+////            List<WorkMaterialCollectTotal> materialCollects = workMaterialCollectTotalService.getMaterialCollectImportExcel(ei);
+//            workMaterialCollectTotalService.getAdditionalInformation(duplicateRemoval,itemHideId,projectTypeId,remarks);
+//
+//            //根据项目id查找工程类型,判断是否全部上传
+//            WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+//            workMaterialCollectType.setStatus("0");
+//            workMaterialCollectType.setEngineerId(itemHideId);
+//            List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+//            WorkMaterialCollectEngineer workMaterialCollectEngineer = new WorkMaterialCollectEngineer();
+//            workMaterialCollectEngineer.setId(itemHideId);
+//            if (list.size()<1){
+//                workMaterialCollectEngineer.setProjectStatus("1");
+//                workMaterialCollectEngineerService.updateProjectStatus(workMaterialCollectEngineer);
+//            }
+//            ajaxJson.setSuccess(true);
+//            ajaxJson.setMsg("已经成功上传"+materialCollects.size()+"确认单记录");
+//            return ajaxJson;
+////        } catch (Exception e) {
+////            addMessage(redirectAttributes, "上传确认单采集记录失败!失败信息:"+e.getMessage());
+////        }
+////        ajaxJson.setSuccess(false);
+////        ajaxJson.setMsg("上传失败");
+////        return ajaxJson;
+//    }
+
+    /**
+     * 下载导入领用申请数据模板
+     */
+    @RequiresPermissions("workitemcollar:total:import")
+    @RequestMapping(value = "import/template")
+    public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            String fileName = "乙供材料确认单模板.xlsx";
+            List<WorkMaterialCollectTotal> list = Lists.newArrayList();
+            new ExportExcel("乙供材料确认单", WorkMaterialCollectTotal.class, 1).setDataList(list).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+Global.getAdminPath()+"/workMaterialCollect/total/?repage";
+    }
+
+    /**
+     * 导出excel文件
+     */
+    @RequiresPermissions("workMaterialCollect:total:export")
+    @RequestMapping(value = "export", method=RequestMethod.POST)
+    public String exportFile(WorkMaterialCollectExportTotal workMaterialCollectExportTotal, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            String fileName = "乙供材料价格确认单"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+            Page<WorkMaterialCollectExportTotal> page = findPageExcel(new Page<WorkMaterialCollectExportTotal>(request, response, -1), workMaterialCollectExportTotal);
+            new ExportExcel("材料价格", WorkMaterialCollectExportTotal.class).setDataList(page.getList()).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导出乙供材料价格确认单失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+Global.getAdminPath()+"/workMaterialCollect/total/?repage";
+    }
+    public Page<WorkMaterialCollectExportTotal> findPageExcel(Page<WorkMaterialCollectExportTotal> page, WorkMaterialCollectExportTotal workMaterialCollectExportTotal) {
+        workMaterialCollectExportTotal.setPage(page);
+        page.setList(workMaterialCollectTotalService.findListExcel(workMaterialCollectExportTotal));
+        return page;
+    }
+}

+ 97 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialCollectTypeController.java

@@ -0,0 +1,97 @@
+package com.jeeplus.modules.workmaterialcollect.web;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.workcatalogueitem.entity.WorkCatalogueItem;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectEngineerService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+
+/**
+ * 确认单--类型
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/workMaterialCollect/type")
+public class WorkMaterialCollectTypeController {
+    @Autowired
+    private WorkMaterialCollectEngineerService workMaterialCollectEngineerService;
+    @Autowired
+    private WorkMaterialCollectTypeService workMaterialCollectTypeService;
+
+    //查找
+    @ModelAttribute
+    public WorkMaterialCollectType get(@RequestParam(required = false) String id){
+        WorkMaterialCollectType entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = workMaterialCollectTypeService.get(id);
+        }
+        if (entity == null){
+            entity = new WorkMaterialCollectType();
+        }
+        return entity;
+    }
+
+    /**
+     * 选择工程类型
+     */
+    @RequestMapping(value = "selectCataWork")
+    public String selectItem(WorkMaterialCollectType workMaterialCollectType,String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, HttpServletRequest request, HttpServletResponse response, Model model) {
+        try {
+            fieldLabels = URLDecoder.decode(fieldLabels, "UTF-8");
+            fieldKeys = URLDecoder.decode(fieldKeys, "UTF-8");
+            searchLabel = URLDecoder.decode(searchLabel, "UTF-8");
+            searchKey = URLDecoder.decode(searchKey, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        model.addAttribute("labelNames", fieldLabels.split("\\|"));
+        model.addAttribute("labelValues", fieldKeys.split("\\|"));
+        model.addAttribute("fieldLabels", fieldLabels);
+        model.addAttribute("fieldKeys", fieldKeys);
+        model.addAttribute("url", url);
+        model.addAttribute("searchLabel", searchLabel);
+        model.addAttribute("searchKey", searchKey);
+        model.addAttribute("workMaterialCollectType",workMaterialCollectType);
+        return "modules/workmaterialcollect/gridselectWork";
+    }
+
+
+
+//    /**
+//     * 选择工程类型
+//     */
+//    @RequestMapping(value = "selectCataWork")
+//    public String save(WorkMaterialCollectType workMaterialCollectType,String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, HttpServletRequest request, HttpServletResponse response, Model model) {
+//        try {
+//            fieldLabels = URLDecoder.decode(fieldLabels, "UTF-8");
+//            fieldKeys = URLDecoder.decode(fieldKeys, "UTF-8");
+//            searchLabel = URLDecoder.decode(searchLabel, "UTF-8");
+//            searchKey = URLDecoder.decode(searchKey, "UTF-8");
+//        } catch (UnsupportedEncodingException e) {
+//            e.printStackTrace();
+//        }
+//        model.addAttribute("labelNames", fieldLabels.split("\\|"));
+//        model.addAttribute("labelValues", fieldKeys.split("\\|"));
+//        model.addAttribute("fieldLabels", fieldLabels);
+//        model.addAttribute("fieldKeys", fieldKeys);
+//        model.addAttribute("url", url);
+//        model.addAttribute("searchLabel", searchLabel);
+//        model.addAttribute("searchKey", searchKey);
+//        model.addAttribute("workMaterialCollectType",workMaterialCollectType);
+//        return "modules/workmaterialcollect/gridselectWork";
+//    }
+
+}

+ 173 - 0
src/main/java/com/jeeplus/modules/workmaterialcollect/web/WorkMaterialModelListController.java

@@ -0,0 +1,173 @@
+package com.jeeplus.modules.workmaterialcollect.web;
+
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectEngineer;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectTotal;
+import com.jeeplus.modules.workmaterialcollect.entity.WorkMaterialCollectType;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectEngineerService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTotalService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialCollectTypeService;
+import com.jeeplus.modules.workmaterialcollect.service.WorkMaterialModelListService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@Controller
+@RequestMapping(value = "/workMaterialCollect/total")
+public class WorkMaterialModelListController {
+    @Autowired
+    private WorkMaterialModelListService workMaterialModelListService;
+
+    @Autowired
+    private WorkMaterialCollectTotalService workMaterialCollectTotalService;
+
+    @Autowired
+    private WorkMaterialCollectEngineerService workMaterialCollectEngineerService;
+    @Autowired
+    private WorkMaterialCollectTypeService workMaterialCollectTypeService;
+    @ResponseBody
+    @RequestMapping(value = "list.do")
+    public List<WorkMaterialCollectTotal> list(String itemName,WorkMaterialCollectTotal workMaterialCollectTotal, Model model){
+//        if (null==workMaterialCollectTotal){
+//            workMaterialCollectTotal = workMaterialModelListService.getDefaultWorkService(workMaterialCollectTotal,itemName);
+//        }
+//        List<WorkMaterialCollectTotal> workMaterialCollectTotals = new ArrayList<WorkMaterialCollectTotal>();
+        List<WorkMaterialCollectTotal> list = workMaterialCollectTotalService.findList(workMaterialCollectTotal);
+        return list;
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "project.list.do")
+    public List<WorkMaterialCollectEngineer> listProject(String itemName,WorkMaterialCollectEngineer workMaterialCollectEngineer,Model mode){
+        List<WorkMaterialCollectEngineer> list = workMaterialCollectEngineerService.findList(workMaterialCollectEngineer);
+        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+        for (WorkMaterialCollectEngineer workEng : list){
+            workMaterialCollectType = new WorkMaterialCollectType();
+            workMaterialCollectType.setEngineerId(workEng.getId());
+            workEng.setWorkMaterialCollectTypes(workMaterialCollectTypeService.findList(workMaterialCollectType));
+        }
+        List<WorkMaterialCollectEngineer> workMaterialCollectEngineers = new ArrayList<WorkMaterialCollectEngineer>();
+        boolean flag = false;
+        for (WorkMaterialCollectEngineer workMaEng:list){
+            flag = false;
+            for (WorkMaterialCollectType workMaterialCollectType1:workMaEng.getWorkMaterialCollectTypes()){
+                if (workMaterialCollectType1.getStatus().equals("1")){
+                    flag = true;
+                    break;
+                }
+            }
+            if (flag){
+                workMaterialCollectEngineers.add(workMaEng);
+            }
+        }
+//        List<WorkMaterialCollectTotal> list = workMaterialCollectTotalService.findList(workMaterialCollectTotal);
+        return workMaterialCollectEngineers;
+    }
+
+    //查看信息:材料页面查看
+    @RequestMapping(value = "view")
+    public String view(WorkMaterialCollectTotal workMaterialCollectTotal,Model model){
+        List<Double> list = new ArrayList<Double>();
+        Double taxPriceTotal = 0.0;//除税市场价合计
+        int count = 0;//计数器
+        Double taxAvg = 0.0;
+        //得到所有类似的集合
+        WorkMaterialCollectTotal workMaterial = workMaterialCollectTotalService.get(workMaterialCollectTotal.getId());
+        workMaterialCollectTotal.setMaterialName(workMaterial.getMaterialName());
+        workMaterialCollectTotal.setSpecifications(workMaterial.getSpecifications());
+        workMaterialCollectTotal.setUnit(workMaterial.getUnit());
+        List<WorkMaterialCollectTotal> workMaterialCollectTotals = workMaterialCollectTotalService.findList(workMaterialCollectTotal);
+        for (WorkMaterialCollectTotal workTotal:workMaterialCollectTotals){
+            if (null!=workTotal){
+                list.add(workTotal.getExcludingTax());//所有相同费用集合
+                taxPriceTotal+=workTotal.getExcludingTax();//获取除税市场价
+                count++;
+            }
+        }
+        Double taxMax = Collections.max(list);
+        Double taxMin = Collections.min(list);
+        taxAvg = taxPriceTotal/count;//平均值
+        model.addAttribute("taxAvg",taxAvg);
+        model.addAttribute("taxMax",taxMax);
+        model.addAttribute("taxMin",taxMin);
+        model.addAttribute("workCollect",workMaterial);
+        return "modules/workmaterialcollect/modelCollect/workMaterialCollectModelView";//返回一个页面
+    }
+
+    @RequestMapping(value = "test.do")
+    public String text(){
+        return "modules/workmaterialcollect/modelCollect/workMaterialCollectModelList";
+    }
+
+    //查看信息:项目列表查看详细页
+    @RequestMapping(value = "project.view")
+    public String collectViewList(WorkMaterialCollectTotal workMaterialCollectTotal,String itemId,Model model){
+        WorkMaterialCollectType workMaterialCollectType = workMaterialCollectTypeService.get(workMaterialCollectTotal.getProjectTypeId());
+        WorkMaterialCollectEngineer workMaterialCollectEngineer = workMaterialCollectEngineerService.get(itemId);
+        List<WorkMaterialCollectTotal> list = workMaterialCollectTotalService.findList(workMaterialCollectTotal);
+        model.addAttribute("workTotal",list);
+        model.addAttribute("itemId",itemId);
+        model.addAttribute("workEng",workMaterialCollectEngineer);
+        model.addAttribute("workType",workMaterialCollectType);
+        return "modules/workmaterialcollect/modelCollect/workMaterialCollectModelProjectView";
+    }
+    //查看信息:项目列表查看详细页:分析详情页
+    @RequestMapping(value = "project.view.do")
+    public String collectView(String id,String itemId,Model model){
+        WorkMaterialCollectEngineer workMaterialCollectEngineer = workMaterialCollectEngineerService.get(itemId);
+
+        WorkMaterialCollectType workMaterialCollectType = new WorkMaterialCollectType();
+        workMaterialCollectType.setId(workMaterialCollectEngineer.getId());
+        List<WorkMaterialCollectType> list = workMaterialCollectTypeService.findList(workMaterialCollectType);
+//        List<WorkMaterialCollectTotal> workMaterialCollectTotals = workMaterialCollectTotalService.findListTypesId(list);
+        //确定
+        List<WorkMaterialCollectTotal> workMaterialCollectTotalList = new ArrayList<WorkMaterialCollectTotal>();
+        WorkMaterialCollectTotal workMaterialCollectTotal = workMaterialCollectTotalService.get(id);
+        WorkMaterialCollectTotal wt = new WorkMaterialCollectTotal();
+        wt.setMaterialName(workMaterialCollectTotal.getMaterialName());
+        wt.setSpecifications(workMaterialCollectTotal.getSpecifications());
+        wt.setUnit(workMaterialCollectTotal.getUnit());
+        List<WorkMaterialCollectTotal> typeList = workMaterialCollectTotalService.findList(wt);
+
+        boolean flag = false;
+        for (WorkMaterialCollectTotal workTotal:typeList){
+            flag = false;
+            for (WorkMaterialCollectType wy:list){
+                if (wy.getId().equals(workTotal.getProjectTypeId())){
+                    flag = true;
+                    break;
+                }
+            }
+            if (flag){
+                workMaterialCollectTotalList.add(workTotal);
+            }
+        }
+
+        //计算金额
+        List<Double> listDouble = new ArrayList<Double>();
+        Double taxPriceTotal = 0.0;//除税市场价合计
+        int count = 0;//计数器
+        Double taxAvg = 0.0;
+        for (WorkMaterialCollectTotal workTotal:workMaterialCollectTotalList){
+            if (null!=workTotal){
+                listDouble.add(workTotal.getExcludingTax());//所有相同费用集合
+                taxPriceTotal+=workTotal.getExcludingTax();//获取除税市场价
+                count++;
+            }
+        }
+        Double taxMax = Collections.max(listDouble);
+        Double taxMin = Collections.min(listDouble);
+        taxAvg = taxPriceTotal/count;//平均值
+        model.addAttribute("taxAvg",taxAvg);
+        model.addAttribute("taxMax",taxMax);
+        model.addAttribute("taxMin",taxMin);
+        model.addAttribute("workCollect",workMaterialCollectTotal);
+        return "modules/workmaterialcollect/modelCollect/workMaterialCollectModelView";
+    }
+}