Browse Source

试验材料管理

liuyc 2 years ago
parent
commit
6a1bade815

+ 46 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSamplingRecordVO.java

@@ -0,0 +1,46 @@
+package org.springblade.business.vo;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.business.entity.TrialSamplingRecord;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TrialSamplingRecordVO extends TrialSamplingRecord {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 样品编号
+     */
+    private String specificationNumber;
+
+    /**
+     * 样品名称
+     */
+    private String materialName;
+
+    /**
+     * 取样时间
+     */
+    private Date samplingDate;
+
+    /**
+     * 取样人
+     */
+    private String userName;
+
+    /**
+     * 试样数量
+     */
+    private Integer materialCount;
+
+    /**
+     * 是否委外 '0'=否 '1'=是
+     */
+    private Integer isOutsourcing;
+
+}

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -245,4 +245,9 @@ public class WbsTreeContract extends BaseEntity {
     @ApiModelProperty(value = "是否为隐蔽工程节点 '0'否 '1'是")
     private Integer isConcealedWorksNode;
 
+    /**
+     * 配合试验比ids
+     */
+    private String mixRatioTestIds;
+
 }

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreePrivate.java

@@ -176,4 +176,10 @@ public class WbsTreePrivate extends BaseEntity {
     @ApiModelProperty(value = "导入wbs划分匹配字段")
     private String importMatchingInfo;
 
+    /**
+     * 配合试验比ids
+     */
+    private String mixRatioTestIds;
+
+
 }

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateVO.java

@@ -53,5 +53,10 @@ public class WbsTreePrivateVO extends WbsTreePrivate implements INode<WbsTreePri
      */
     private String projectName;
 
+    /**
+     * 配合试验比ids
+     */
+    private String mixRatioTestIds;
+
 
 }

+ 37 - 36
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialMaterialController.java

@@ -16,6 +16,7 @@ import org.springblade.business.service.ITrialMaterialMobilizationService;
 import org.springblade.business.service.ITrialSampleInfoService;
 import org.springblade.business.vo.TrialMaterialMobilizationVO;
 import org.springblade.business.vo.TrialSampleInfoVO;
+import org.springblade.business.vo.TrialSamplingRecordVO;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
@@ -38,50 +39,57 @@ public class TrialMaterialController extends BladeController {
     private final ITrialMaterialMobilizationService iTrialMaterialMobilizationService;
     private final ITrialSampleInfoService iTrialSampleInfoService;
 
-    @GetMapping("/mobilization/detail")
+    @GetMapping("/mobilization/sampling-record")
     @ApiOperationSupport(order = 1)
-    @ApiOperation(value = "材料进场详情", notes = "传入id")
+    @ApiOperation(value = "材料取样记录", notes = "传入材料id")
+    public R<List<TrialSamplingRecordVO>> samplingRecordList(@Valid @RequestParam Long id) {
+        return R.data(iTrialMaterialMobilizationService.samplingRecordList(id));
+    }
+
+    @GetMapping("/mobilization/detail")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "进场材料详情", notes = "传入id")
     public R<TrialMaterialMobilization> mobilizationDetail(@Valid @RequestParam Long id) {
         return R.data(iTrialMaterialMobilizationService.mobilizationDetail(id));
     }
 
     @GetMapping("/mobilization/page")
-    @ApiOperationSupport(order = 2)
-    @ApiOperation(value = "材料进场分页查询", notes = "传入page、TrialMaterialMobilizationVO")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "进场材料分页条件查询", notes = "传入page、TrialMaterialMobilizationVO")
     public R<IPage<TrialMaterialMobilizationVO>> mobilizationPage(Query query, TrialMaterialMobilizationVO obj) {
         return R.data(iTrialMaterialMobilizationService.selectPage(Condition.getPage(query), obj));
     }
 
     @GetMapping("/mobilization/list")
-    @ApiOperationSupport(order = 3)
-    @ApiOperation(value = "材料取样列表查询", notes = "null")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "取样材料关联进场材料时查询的列表", notes = "null")
     public R<List<TrialMaterialMobilization>> mobilizationList() {
         return R.data(iTrialMaterialMobilizationService.selectList());
     }
 
     @PostMapping("/mobilization/submit")
-    @ApiOperationSupport(order = 4)
-    @ApiOperation(value = "材料进场新增或修改", notes = "传入TrialMaterialMobilization对象")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "进场材料新增或修改", notes = "传入TrialMaterialMobilization对象")
     public R<Object> mobilizationSubmit(@Valid @RequestBody TrialMaterialMobilization obj) {
         return R.status(iTrialMaterialMobilizationService.mobilizationSubmit(obj));
     }
 
     @PostMapping("/mobilization/remove")
-    @ApiOperationSupport(order = 5)
-    @ApiOperation(value = "材料进场批量删除", notes = "传入ids")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "进场材料批量删除", notes = "传入ids")
     public R<Object> mobilizationRemove(@Valid @RequestParam String ids) {
         return R.status(iTrialMaterialMobilizationService.deleteLogic(Func.toLongList(ids)));
     }
 
     @PostMapping("/mobilization/copy")
-    @ApiOperationSupport(order = 6)
-    @ApiOperation(value = "材料进场批量复制", notes = "传入ids")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "进场材料批量复制", notes = "传入ids")
     public R<Object> mobilizationCopy(@Valid @RequestParam String ids) {
         return R.status(iTrialMaterialMobilizationService.mobilizationCopy(ids));
     }
 
     @PostMapping("/mobilization/import")
-    @ApiOperationSupport(order = 7)
+    @ApiOperationSupport(order = 8)
     @ApiOperation(value = "导入进场材料", notes = "传入excel")
     public R mobilizationImport(MultipartFile file, Integer isCovered) {
         TrialMaterialMobilizationImporter trialMaterialMobilizationImporter = new TrialMaterialMobilizationImporter(iTrialMaterialMobilizationService, isCovered == 1);
@@ -90,50 +98,50 @@ public class TrialMaterialController extends BladeController {
     }
 
     @PostMapping("/mobilization/export-pdf")
-    @ApiOperationSupport(order = 8)
-    @ApiOperation(value = "导出进场材料Pdf", notes = "传入ids")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "批量打印进场材料Pdf", notes = "传入ids")
     public void mobilizationExportPdf(@Valid @RequestParam String ids, HttpServletResponse response) {
         iTrialMaterialMobilizationService.mobilizationExportPdf(ids, response);
     }
 
     @GetMapping("/sample/detail")
-    @ApiOperationSupport(order = 9)
-    @ApiOperation(value = "材料取样详情", notes = "传入id")
+    @ApiOperationSupport(order = 10)
+    @ApiOperation(value = "取样材料详情", notes = "传入id")
     public R<TrialSampleInfo> sampleDetail(@Valid @RequestParam Long id) {
         return R.data(iTrialSampleInfoService.sampleDetail(id));
     }
 
     @GetMapping("/sample/page")
-    @ApiOperationSupport(order = 10)
-    @ApiOperation(value = "材料取样分页查询", notes = "传入page、TrialSampleInfoVO")
+    @ApiOperationSupport(order = 11)
+    @ApiOperation(value = "取样材料分页条件查询", notes = "传入page、TrialSampleInfoVO")
     public R<IPage<TrialSampleInfoVO>> mobilizationPage(Query query, TrialSampleInfoVO obj) {
         return R.data(iTrialSampleInfoService.selectPage(Condition.getPage(query), obj));
     }
 
     @PostMapping("/sample/submit")
-    @ApiOperationSupport(order = 11)
-    @ApiOperation(value = "材料取样新增或修改", notes = "传入TrialSampleInfo对象")
+    @ApiOperationSupport(order = 12)
+    @ApiOperation(value = "取样材料新增或修改", notes = "传入TrialSampleInfoDTO对象、关联材料信息传材料的mobilizationId")
     public R<Object> sampleSubmit(@Valid @RequestBody TrialSampleInfoDTO obj) {
         return R.status(iTrialSampleInfoService.sampleSubmit(obj));
     }
 
     @PostMapping("/sample/remove")
-    @ApiOperationSupport(order = 12)
-    @ApiOperation(value = "材料取样批量删除", notes = "传入ids")
+    @ApiOperationSupport(order = 13)
+    @ApiOperation(value = "取样材料批量删除", notes = "传入ids")
     public R<Object> sampleRemove(@Valid @RequestParam String ids) {
         return R.status(iTrialSampleInfoService.deleteLogic(Func.toLongList(ids)));
     }
 
     @PostMapping("/sample/copy")
-    @ApiOperationSupport(order = 13)
-    @ApiOperation(value = "材料取样批量复制", notes = "传入ids")
+    @ApiOperationSupport(order = 14)
+    @ApiOperation(value = "取样材料批量复制", notes = "传入ids")
     public R<Object> sampleCopy(@Valid @RequestParam String ids) {
         return R.status(iTrialSampleInfoService.sampleCopy(ids));
     }
 
     @PostMapping("/sample/import")
-    @ApiOperationSupport(order = 14)
-    @ApiOperation(value = "导入样材料", notes = "传入excel")
+    @ApiOperationSupport(order = 15)
+    @ApiOperation(value = "导入样材料", notes = "传入excel")
     public R sampleImport(MultipartFile file, Integer isCovered) {
         TrialSampleInfoImporter trialSampleInfoImporter = new TrialSampleInfoImporter(iTrialSampleInfoService, isCovered == 1);
         ExcelUtil.save(file, trialSampleInfoImporter, TrialSampleInfoExcel.class);
@@ -141,18 +149,11 @@ public class TrialMaterialController extends BladeController {
     }
 
     @PostMapping("/sample/export-pdf")
-    @ApiOperationSupport(order = 15)
-    @ApiOperation(value = "导出取样材料Pdf", notes = "传入ids")
+    @ApiOperationSupport(order = 16)
+    @ApiOperation(value = "批量打印取样材料Pdf", notes = "传入ids")
     public void sampleExportPdf(@Valid @RequestParam String ids, HttpServletResponse response) {
         iTrialSampleInfoService.sampleExportPdf(ids, response);
     }
 
-    @PostMapping("/sample/relation-material")
-    @ApiOperationSupport(order = 16)
-    @ApiOperation(value = "关联进场材料", notes = "传入材料id")
-    public R<Object> sampleRelationMaterial(@Valid @RequestParam String id) {
-        return R.status(iTrialSampleInfoService.sampleRelationMaterial(id));
-    }
-
 
 }

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSamplingRecordMapper.java

@@ -3,6 +3,16 @@ package org.springblade.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springblade.business.entity.TrialSamplingRecord;
 
+import java.util.List;
+
 public interface TrialSamplingRecordMapper extends BaseMapper<TrialSamplingRecord> {
 
+    TrialSamplingRecord selectByMobilizationIdAndSampleInfoId(Long mobilizationId, Long id);
+
+    void deleteBySampleInfoId(Long id);
+
+    void insertRecord(Long id, Long mobilizationId, Long sampleInfoId);
+
+    List<TrialSamplingRecord> selectListByMobilizationId(Long mobilizationId);
+
 }

+ 15 - 6
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSamplingRecordMapper.xml

@@ -6,13 +6,22 @@
     <resultMap id="ResultEntityMap" type="org.springblade.business.entity.TrialSamplingRecord">
         <result column="id" property="id"/>
         <result column="mobilization_id" property="mobilizationId"/>
-        <result column="specification_number" property="specificationNumber"/>
-        <result column="material_name" property="materialName"/>
-        <result column="sampling_date" property="samplingDate"/>
-        <result column="user_id" property="userId"/>
-        <result column="material_count" property="materialCount"/>
-        <result column="is_outsourcing" property="isOutsourcing"/>
     </resultMap>
 
+    <insert id="insertRecord">
+        insert into u_trial_sampling_record (id,mobilization_id,sample_info_id) values (#{id},#{mobilizationId},#{sampleInfoId})
+    </insert>
+
+    <delete id="deleteBySampleInfoId">
+        delete from u_trial_sampling_record where sample_info_id = #{id}
+    </delete>
+
+    <select id="selectByMobilizationIdAndSampleInfoId" resultType="org.springblade.business.entity.TrialSamplingRecord">
+        select * from u_trial_sampling_record where mobilization_id = #{mobilizationId} and sample_info_id = #{id}
+    </select>
+
+    <select id="selectListByMobilizationId" resultType="org.springblade.business.entity.TrialSamplingRecord">
+        select * from u_trial_sampling_record where mobilization_id = #{mobilizationId}
+    </select>
 
 </mapper>

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.business.entity.TrialMaterialMobilization;
 import org.springblade.business.excel.TrialMaterialMobilizationExcel;
 import org.springblade.business.vo.TrialMaterialMobilizationVO;
+import org.springblade.business.vo.TrialSamplingRecordVO;
 import org.springblade.core.mp.base.BaseService;
 
 import javax.servlet.http.HttpServletResponse;
@@ -26,4 +27,6 @@ public interface ITrialMaterialMobilizationService extends BaseService<TrialMate
 
     void mobilizationExportPdf(String ids, HttpServletResponse response);
 
+    List<TrialSamplingRecordVO> samplingRecordList(Long id);
+
 }

+ 0 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialSampleInfoService.java

@@ -24,6 +24,4 @@ public interface ITrialSampleInfoService extends BaseService<TrialSampleInfo> {
 
     void sampleExportPdf(String ids, HttpServletResponse response);
 
-    boolean sampleRelationMaterial(String id);
-
 }

+ 29 - 4
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java

@@ -10,17 +10,21 @@ import com.lowagie.text.Paragraph;
 import com.lowagie.text.pdf.BaseFont;
 import com.lowagie.text.pdf.PdfPTable;
 import com.lowagie.text.pdf.PdfWriter;
-import com.sun.javafx.tk.FontLoader;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springblade.business.entity.TrialMaterialMobilization;
+import org.springblade.business.entity.TrialSampleInfo;
+import org.springblade.business.entity.TrialSamplingRecord;
 import org.springblade.business.excel.TrialMaterialMobilizationExcel;
 import org.springblade.business.mapper.TrialMaterialMobilizationMapper;
+import org.springblade.business.mapper.TrialSampleInfoMapper;
+import org.springblade.business.mapper.TrialSamplingRecordMapper;
 import org.springblade.business.service.ITrialMaterialMobilizationService;
 import org.springblade.business.utils.PDFUtil;
 import org.springblade.business.utils.SystemUtils;
 import org.springblade.business.vo.TrialMaterialMobilizationVO;
+import org.springblade.business.vo.TrialSamplingRecordVO;
 import org.springblade.business.wrapper.TrialMaterialMobilizationWarpper;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
@@ -38,18 +42,17 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
-import java.awt.*;
 import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 @Service
 @AllArgsConstructor
 public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialMaterialMobilizationMapper, TrialMaterialMobilization> implements ITrialMaterialMobilizationService {
 
     private final IUserClient iUserClient;
+    private final TrialSampleInfoMapper trialSampleInfoMapper;
+    private final TrialSamplingRecordMapper trialSamplingRecordMapper;
 
     @Override
     public boolean mobilizationSubmit(TrialMaterialMobilization obj) {
@@ -231,5 +234,27 @@ public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialM
         }
     }
 
+    @Override
+    public List<TrialSamplingRecordVO> samplingRecordList(Long id) {
+        //获取关联信息
+        List<TrialSamplingRecord> trialSamplingRecords = trialSamplingRecordMapper.selectListByMobilizationId(id);
+        //获取样品信息
+        List<TrialSampleInfo> trialSampleInfos = trialSampleInfoMapper.selectList(Wrappers.<TrialSampleInfo>query().lambda());
+        List<TrialSamplingRecordVO> list = new ArrayList<>();
+        for (TrialSamplingRecord trialSamplingRecord : trialSamplingRecords) {
+            for (TrialSampleInfo trialSampleInfo : trialSampleInfos) {
+                if (trialSampleInfo.getId().equals(trialSamplingRecord.getSampleInfoId())) {
+                    R<User> userR = iUserClient.userInfoById(trialSampleInfo.getUserId());
+                    TrialSamplingRecordVO trialSamplingRecordVO = BeanUtil.copyProperties(trialSampleInfo, TrialSamplingRecordVO.class);
+                    if (trialSamplingRecordVO != null) {
+                        trialSamplingRecordVO.setUserName(userR.getData().getName());
+                        list.add(trialSamplingRecordVO);
+                    }
+                }
+            }
+        }
+        return list;
+    }
+
 
 }

+ 6 - 25
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java

@@ -2,7 +2,6 @@ package org.springblade.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.lowagie.text.Document;
 import com.lowagie.text.DocumentException;
 import com.lowagie.text.Font;
@@ -14,17 +13,12 @@ import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springblade.business.dto.TrialSampleInfoDTO;
-import org.springblade.business.entity.TrialMaterialMobilization;
 import org.springblade.business.entity.TrialSampleInfo;
 import org.springblade.business.entity.TrialSamplingRecord;
-import org.springblade.business.excel.TrialMaterialMobilizationExcel;
 import org.springblade.business.excel.TrialSampleInfoExcel;
-import org.springblade.business.mapper.TrialMaterialMobilizationMapper;
 import org.springblade.business.mapper.TrialSampleInfoMapper;
 import org.springblade.business.mapper.TrialSamplingRecordMapper;
-import org.springblade.business.service.ITrialMaterialMobilizationService;
 import org.springblade.business.service.ITrialSampleInfoService;
-import org.springblade.business.service.ITrialSamplingRecordService;
 import org.springblade.business.utils.PDFUtil;
 import org.springblade.business.utils.SystemUtils;
 import org.springblade.business.vo.TrialSampleInfoVO;
@@ -42,6 +36,7 @@ import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
@@ -55,9 +50,6 @@ import java.util.List;
 public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoMapper, TrialSampleInfo> implements ITrialSampleInfoService {
 
     private final IUserClient iUserClient;
-    private final ITrialMaterialMobilizationService iTrialMaterialMobilizationService;
-    private final TrialMaterialMobilizationMapper trialMaterialMobilizationMapper;
-    private final ITrialSamplingRecordService iTrialSamplingRecordService;
     private final TrialSamplingRecordMapper trialSamplingRecordMapper;
 
     @Override
@@ -85,6 +77,7 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean sampleSubmit(TrialSampleInfoDTO obj) {
         if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
             throw new ServiceException("获取用户信息失败");
@@ -96,21 +89,15 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
         //新增或者修改成功后关联样品取样信息
         if (obj.getId() != null && obj.getMobilizationId() != null) {
             //获取当前选择的样品信息
-            TrialSamplingRecord trialSamplingRecord = trialSamplingRecordMapper.selectOne(Wrappers.<TrialSamplingRecord>query().lambda()
-                    .eq(TrialSamplingRecord::getMobilizationId, obj.getMobilizationId())
-                    .eq(TrialSamplingRecord::getSampleInfoId, obj.getId())
-            );
+            TrialSamplingRecord trialSamplingRecord = trialSamplingRecordMapper.selectByMobilizationIdAndSampleInfoId(obj.getMobilizationId(), obj.getId());
             if (trialSamplingRecord != null) {
                 //存在不新增
                 return true;
             } else {
-                //新增前删除旧记录
-                trialSamplingRecordMapper.delete(Wrappers.<TrialSamplingRecord>query().lambda().eq(TrialSamplingRecord::getSampleInfoId, obj.getId()));
+                //删除旧记录
+                trialSamplingRecordMapper.deleteBySampleInfoId(obj.getId());
                 //新增记录
-                TrialSamplingRecord record = new TrialSamplingRecord();
-                record.setMobilizationId(obj.getMobilizationId());
-                record.setSampleInfoId(obj.getId());
-                iTrialSamplingRecordService.save(record);
+                trialSamplingRecordMapper.insertRecord(SnowFlakeUtil.getId(),obj.getMobilizationId(),obj.getId());
             }
         }
         return true;
@@ -252,10 +239,4 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
         }
     }
 
-    @Override
-    public boolean sampleRelationMaterial(String id) {
-        return false;
-    }
-
-
 }