zss
2023-09-06 fa0d4fc230b44c04b969b4f7c7bd0ea72a61572d
产品检验+过程检验(初步完成)
已添加7个文件
已重命名1个文件
已修改28个文件
已删除4个文件
2076 ■■■■■ 文件已修改
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/ResportController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/ProcessInspectMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/ProcessInspect.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/StatisticsData.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/ResportService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java 316 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/ResportServiceImpl.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InspectionItemMapper.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/RawInsProductMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/RawInspectMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
production-server/src/main/resources/mapper/ManualTechnologyMapper.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/src/main/resources/application-dev.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo1;
import com.yuanchu.mom.pojo.ProcessInspect;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
@@ -19,7 +21,6 @@
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -50,7 +51,7 @@
    @Autowired
    Jwt jwt;
    @ApiOperation(value = "新增过程检验单-->根据订单号选择产品信息和工艺")
    @ApiOperation(value = "新增成品检验单-->根据订单号选择产品信息和工艺")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "orderNumber", value = "订单编号", dataTypeClass = String.class, required = true)
    })
@@ -59,69 +60,48 @@
        return Result.success(finishedInspectService.chooseMater(orderNumber));
    }
    @ApiOperation(value = "新增过程检验单-->选择设备")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "technologyId", value = "关联的工艺路线id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "father", value = "项目父名称", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "name", value = "项目名称", dataTypeClass = String.class, required = true)
    })
    @GetMapping("/chooseDev")
    public Result<?> chooseDev(Integer technologyId, String father, String name) {
        return Result.success(finishedInspectService.chooseDev(technologyId,father,name));
    }
    @ApiOperation(value = "新增过程检验单")
    @PostMapping("/addProcess")
    public Result<?> addProcess(@RequestHeader("token") String token, @RequestBody FinishedInspectVo1 finishedInspectVo1) throws Exception {
    @ApiOperation(value = "新增成品检验单")
    @PostMapping("/addFinish")
    public Result<?> addFinish(@RequestHeader("token") String token, @Validated @RequestBody FinishedInspectVo finishedInspectVo) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        return Result.success(finishedInspectService.addProcess(data.get("id").replaceAll("\"", ""), finishedInspectVo1));
        return Result.success(finishedInspectService.addProcessInspectionSheet(data.get("id").replaceAll("\"", ""), finishedInspectVo));
    }
    @ApiOperation(value = "新增按钮-->1、新增成品检验单")
    @PostMapping("/add_process_inspection_sheet")
    public Result<?> addProcessInspectionSheet(@Validated @RequestBody FinishedInspect finishedInspect) {
        Integer isInsertSuccess = finishedInspectService.addProcessInspectionSheet(finishedInspect);
        if (isInsertSuccess == 1) {
            return Result.success("新增成功!", finishedInspect.getId());
        }
        return Result.fail("新增失败!");
    }
    @ApiOperation(value = "新增按钮-->1、新增过程检验单-->1、项目名称下拉框")
    @GetMapping("/list_material")
    public Result<?> selectMaterialIdAndNameAndCode() {
        List<Map<String, Object>> maps = materialService.selectMaterialIdAndNameAndCode();
        return Result.success(maps);
    }
    @ApiOperation(value = "新增按钮-->3、检验结论")
    @ApiOperation(value = "上报(更新检验状态)")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "finishedInspectId", value = "检验单Id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "result", value = "检验结论", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/inspection_conclusion")
    public Result<?> inspectionConclusion(@RequestHeader("token") String token, Integer finishedInspectId, Integer result) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(data.get("name").replaceAll("\"", ""), finishedInspectId, result);
        if (isInsertSuccess == 1) {
            return Result.success("上报成功!");
    @PostMapping("/updateFinishInspectsById")
    public Result updateFinishInspectsById(@RequestHeader("token") String token, Integer id) throws Exception {
        //如果已经上报了不能再一次上报
        FinishedInspect finishedInspect = finishedInspectService.getById(id);
        if (ObjectUtils.isNotEmpty(finishedInspect.getResult())) {
            return Result.fail("已经上报过了,不能再次上报!");
        }
        return Result.fail("上报失败!");
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        return Result.success(finishedInspectService.updateFinishInspectsById(data.get("name").replaceAll("\"", ""), id));
    }
    @ApiOperation(value = "4、主页分页")
    @ApiOperation(value = "根据检验单id查询成品检验单详情")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/selectFinishInspectsListById")
    public Result selectFinishInspectsListById(Integer id) {
        return Result.success(finishedInspectService.selectFinishInspectsListById(id));
    }
    @ApiOperation(value = "分页查询成品检验单列表")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageNo", value = "条数/页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "inspectResult", value = "检验结果", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "inspectDate", value = "检验日期", dataTypeClass = Date.class, dataType = "date"),
            @ApiImplicitParam(name = "inspectUsername", value = "主机工", dataTypeClass = String.class)
            @ApiImplicitParam(name = "result", value = "检验结果(为空=全部)", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "material", value = "产品名称", dataTypeClass = String.class)
    })
    @GetMapping("/list_page")
    public Result<?> selectFinishedInspectPage(Integer pageNo, Integer pageSize, Integer inspectResult, String inspectDate, String inspectUsername) {
        IPage<Map<String, Object>> page = finishedInspectService.selectFinishedInspectPage(new Page<Object>(pageNo, pageSize), inspectResult, inspectDate, inspectUsername);
    public Result<?> list_page(Integer pageNo, Integer pageSize, Integer result, String material) {
        IPage<Map<String, Object>> page = finishedInspectService.selectFinishedInspectPage(new Page<Object>(pageNo, pageSize), result, material);
        Map<String, Object> map = new HashMap<>();
        map.put("total", page.getTotal());
        map.put("row", page.getRecords());
inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java
@@ -29,6 +29,7 @@
 * @author zss
 * @since 2023-08-07 10:04:01
 */
@Api(tags = "QMS管理-->不合格品管理")
@RestController
@RequestMapping("/inspectUnaccepted")
public class InspectUnacceptedController {
inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java
@@ -17,13 +17,13 @@
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-01
 */
@Api(tags = "QMS管理-->成品检验")
@Api(tags = "QMS管理-->成品过程检验项目")
@RestController
@RequestMapping("/inspection-item")
public class InspectionItemController {
@@ -31,22 +31,35 @@
    @Autowired
    private InspectionItemService inspectionItemService;
    @Autowired
    private Jwt jwt;
    @ApiOperation(value = "新增按钮-->2、查询所有检验项目")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "finishInspectId",value = "成品检验单Id",dataTypeClass  = Integer.class,required = true)
            @ApiImplicitParam(name = "id", value = "检验单Id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "type", value = "类型", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/list_user")
    public Result<?> selectInspectionItem(Integer finishInspectId){
        List<InspectionItemDto> inspectionItemDto = inspectionItemService.selectInspectionItem(finishInspectId);
    public Result<?> selectInspectionItem(Integer id, Integer type) {
        List<InspectionItemDto> inspectionItemDto = inspectionItemService.selectInspectionItem(id,type);
        return Result.success(inspectionItemDto);
    }
    @ApiOperation(value = "新增按钮-->2、检验项目-->失去焦点发起该请求")
    @ApiOperation(value = "新增检验单-->选择设备")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "technologyId", value = "关联的工艺路线id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "father", value = "项目父名称", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "name", value = "项目名称", dataTypeClass = String.class, required = true)
    })
    @GetMapping("/chooseDev")
    public Result<?> chooseDev(Integer technologyId, String father, String name) {
        return Result.success(inspectionItemService.chooseDev(technologyId,father,name));
    }
    @ApiOperation(value = "新增按钮-->2、检验项目的检验值-->失去焦点发起该请求")
    @PostMapping("/lose_focus_update")
    public Result<?> addInspectionItem(@RequestHeader("token")String token, @RequestBody UpdateInspectionItemDto updateInspectionItemDto) throws Exception {
    public Result<?> addInspectionItem(@RequestHeader("token") String token, @RequestBody UpdateInspectionItemDto updateInspectionItemDto) throws Exception {
        Map<String, String> usernameMessage = jwt.readJWT(token);
        Map<String, Object> usernameAndId = JackSonUtil.unmarshal(usernameMessage.get("data"), Map.class);
        String name = usernameAndId.get("name").toString().replaceAll("\"", "");
@@ -57,10 +70,4 @@
        return Result.success(map);
    }
    @ApiOperation(value = "新增按钮-->2、检验项目-->试验设备下拉框")
    @GetMapping("/list_device")
    public Result<?> selectDeviceIdAndName(){
        List<Map<String, Object>> maps = inspectionItemService.selectDeviceIdAndName();
        return Result.success(maps);
    }
}
inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.ProcessInspect;
import com.yuanchu.mom.pojo.vo.ProcessInspectVo;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.yuanchu.mom.service.ProcessInspectService;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
 * è¿‡ç¨‹æ£€éªŒ(ProcessInspect)表控制层
 *
 * @author zss
 * @since 2023-09-06 13:36:02
 */
@Api(tags = "QMS管理-->过程检验")
@RestController
@RequestMapping("/processInspect")
public class ProcessInspectController {
    @Autowired
    private ProcessInspectService processInspectService;
    @Resource
    Jwt jwt;
    @ApiOperation(value = "新增过程检验单-->根据订单号选择产品信息和工艺")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "orderNumber", value = "订单编号", dataTypeClass = String.class, required = true)
    })
    @GetMapping("/chooseMater")
    public Result<?> chooseMater(String orderNumber) {
        return Result.success(processInspectService.chooseMater(orderNumber));
    }
    @ApiOperation(value = "新增过程检验单")
    @PostMapping("/addProcess")
    public Result<?> addProcess(@RequestHeader("token") String token,@Validated @RequestBody ProcessInspectVo processInspectVo) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        return Result.success(processInspectService.addProcess(data.get("id").replaceAll("\"", ""), processInspectVo));
    }
    @ApiOperation(value = "上报(更新检验状态)")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/updateProcessInspectsById")
    public Result updateProcessInspectsById(Integer id) {
        //如果已经上报了不能再一次上报
        ProcessInspect processInspect = processInspectService.getById(id);
        if (ObjectUtils.isNotEmpty(processInspect.getResult())) {
            return Result.fail("已经上报过了,不能再次上报!");
        }
        return Result.success(processInspectService.updateProcessInspectsById(id));
    }
    @ApiOperation(value = "根据检验单id查询过程检验单详情")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/selectProcessInspectsListById")
    public Result selectProcessInspectsListById(Integer id) {
        return Result.success(processInspectService.selectProcessInspectsListById(id));
    }
    @ApiOperation(value = "分页查询过程检验单列表")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "techfather", value = "工序", dataTypeClass = String.class),
            @ApiImplicitParam(name = "result", value = "检测结果(为空=全部)", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "name", value = "产品名称", dataTypeClass = String.class)
    })
    @PostMapping("/selectProcessInspectsList")
    public Result selectProcessInspectsList(Integer pageSize, Integer countSize, String techfather, Integer result, String name) {
        IPage<Map<String, Object>> page = processInspectService.selectProcessInspectsList(new Page<Object>(pageSize, countSize), techfather, result, name);
        Map<String, Object> map = new HashMap<>();
        map.put("total", page.getTotal());
        map.put("row", page.getRecords());
        return Result.success(map);
    }
}
inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
@@ -14,6 +14,7 @@
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -36,7 +37,7 @@
    @ApiOperation(value = "新增原材料检验单")
    @PostMapping("/addRawInspects")
    public Result addRawInspects(@RequestHeader("token") String token, @RequestBody RawInspectVo rawInspectVo) throws Exception {
    public Result addRawInspects(@RequestHeader("token") String token,@Validated @RequestBody RawInspectVo rawInspectVo) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        return Result.success(rawInspectService.addRawInspects(data.get("id").replaceAll("\"", ""), rawInspectVo));
    }
@@ -82,23 +83,4 @@
        return Result.success(rawInspectService.updateRawInspectsById(id));
    }
    @ApiOperation(value = "删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "原材料检验单id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/delRawInsById")
    public Result delRawInsById(Integer id) {
        rawInspectService.delRawInsById(id);
        return Result.success("删除" + id + "成功!");
    }
    @ApiOperation(value = "批量删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "ids", value = "原材料检验单id", dataTypeClass = String.class, required = true)
    })
    @PostMapping("/delAllRawIns")
    public Result delAllRawIns(String ids) {
        rawInspectService.delAllRawIns(ids);
        return Result.success("批量删除成功!");
    }
}
inspect-server/src/main/java/com/yuanchu/mom/controller/ResportController.java
ÎļþÒÑɾ³ý
inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java
@@ -2,10 +2,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.FinishedInspect;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -19,14 +18,12 @@
 */
public interface FinishedInspectMapper extends BaseMapper<FinishedInspect> {
    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
    //分页查询成品检验
    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material);
    //计算成品或者过程检验在某一个时间段的合格数
    Integer selCountFin(String begin, String end, int type,int result);
    //计算月产量
    Long seAllCount(String begin, String end, int type);
    //新增过程检验单-->根据订单号选择产品信息
    //新增检验单-->根据订单号选择产品信息
    List<Map<String, Object>> chooseMater(String orderNumber);
    //根据检验单id查询成品检验单详情
    List<Map<String, Object>> selectFinishInspectsListById(Integer id);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java
@@ -18,11 +18,7 @@
    //查询成品检验中不合格品检验单列表
    IPage<Map<String, Object>> selectInsList(Page<Object> page, String formTime, Integer dealState);
    //根据原材料检验单id删除原材料不合格品
    void updaRawIns(Integer id);
    //根据原材料检验单id批量删除原材料不合格品
    void delAllRawIns(String ids);
    IPage<Map<String, Object>> selectUnqualifiedRawMaterials(Page<Object> page, String formTime, String productName, String supplier, Integer processingStatus);
inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.mybatis_config.MyBaseMapper;
import com.yuanchu.mom.pojo.InspectionItem;
import com.yuanchu.mom.pojo.dto.InspectionItemDto;
@@ -14,7 +15,13 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-01
 */
public interface InspectionItemMapper extends MyBaseMapper<InspectionItem> {
public interface InspectionItemMapper extends BaseMapper<InspectionItem> {
    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId);
    //获取该类型检验单id下的检验项目结果集
     List<Integer> getResult(Integer id, int type);
    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId, Integer type);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/ProcessInspectMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.ProcessInspect;
import java.util.List;
import java.util.Map;
/**
 * è¿‡ç¨‹æ£€éªŒ(ProcessInspect)表数据库访问层
 *
 * @author zss
 * @since 2023-09-06 13:36:02
 */
public interface ProcessInspectMapper extends BaseMapper<ProcessInspect> {
    //新增过程检验单-->根据订单号选择产品信息和工艺
    List<Map<String, Object>> chooseMater(String orderNumber);
    //根据检验单id查询过程检验单详情
    List<Map<String, Object>> selectProcessInspectsListById(Integer id);
    //分页查询过程检验单列表
    IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java
@@ -19,10 +19,6 @@
    //根据原材料检验单id查询检验项目
    List<Integer> getresult(Integer id);
    //根据原材料检验单id删除
    void updaRawInsById(Integer id);
    //根据原材料检验单id批量删除原材料检验项目
    void delAllRawIns(String ids);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
@@ -29,8 +29,6 @@
    //根据原材料检验单id查看详情
    List<Map<String, Object>> selectRawInspectsListById(Integer id);
    //根据原材料检验单id批量删除
    void delAllRawIns(String ids);
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java
@@ -1,97 +1,105 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.io.Serializable;
/**
 * <p>
 * æˆå“æ£€éªŒ(FinishedInspect)表实体类
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-01
 * @author zss
 * @since 2023-09-06 13:33:56
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="FinishedInspect对象", description="")
@TableName("finished_inspect")
public class FinishedInspect implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键", hidden = true)
    @TableId(value = "id", type = IdType.AUTO)
    /**
     * ä¸»é”®
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "订单号", required = true, example = "DDH202308010001")
    /**
     * è®¢å•号
     **/
    private String orderNumber;
    @ApiModelProperty(value = "客户名称", required = true, example = "懒洋洋")
    /**
     * å®¢æˆ·åç§°
     **/
    private String customerName;
    @ApiModelProperty(value = "工程名称", required = true, example = "液体硅橡胶")
    /**
     * å·¥ç¨‹åç§°
     **/
    private String projectName;
    @ApiModelProperty(value = "质量追溯号", required = true, example = "ZLZSH202308010001")
    /**
     * è´¨é‡è¿½æº¯å·
     **/
    private String qualityTraceability;
    @ApiModelProperty(value = "0:成品;1:过程;", hidden = true)
    private Integer type;
    @ApiModelProperty(value = "单位", required = true, example = "吨")
    /**
     * å•位
     **/
    private String unit;
    @ApiModelProperty(value = "数量", required = true, example = "50")
    /**
     * æ•°é‡
     **/
    private Integer quantity;
    @ApiModelProperty(value = "规格型号拼接字符", required = true, example = "8.7/15kV JLS-3.2")
    /**
     * è§„格型号
     **/
    private String specificationsModel;
    @ApiModelProperty(value = "产品编码", required = true, example = "GX20230807")
    private String materialCode;
    @ApiModelProperty(value = "产品名称", required = true, example = "光纤")
    /**
     * ç‰©æ–™åç§°
     **/
    private String material;
    /**
     * ç‰©æ–™ç¼–码
     **/
    private String materialCode;
    @ApiModelProperty(value = "报检人:用户id", required = true, example = "1")
    /**
     * æŠ¥æ£€äºº:用户id
     **/
    private Integer userId;
    @ApiModelProperty(value = "检验结论", hidden = true, required = true, example = "DDH202308010001")
    /**
     * æ£€éªŒç»“论;0:不合格;1:合格
     **/
    private Integer result;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java
@@ -1,81 +1,107 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * <p>
 * æˆå“/过程检验项目(InspectionItem)表实体类
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-01
 * @author zss
 * @since 2023-09-06 13:34:17
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="InspectionItem对象", description="")
public class InspectionItem extends Model<InspectionItem> implements Serializable {
@TableName("inspection_item")
public class InspectionItem implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    /**
     * ä¸»é”®
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "项目名称")
    /**
     * é¡¹ç›®åç§°
     **/
    private String name;
    @ApiModelProperty(value = "父名称")
    /**
     * çˆ¶åç§°
     **/
    private String father;
    @ApiModelProperty(value = "单位")
    /**
     * å•位
     **/
    private String unit;
    @ApiModelProperty(value = "标准值")
    /**
     * æ ‡å‡†å€¼
     **/
    private String required;
    @ApiModelProperty(value = "内控值")
    /**
     * å†…控值
     **/
    private String internal;
    @ApiModelProperty(value = "成品检验单Id")
    private Integer finishInspectId;
    @ApiModelProperty(value = "检验值")
    /**
     * æ£€éªŒå€¼
     **/
    private String inspectionValue;
    @ApiModelProperty(value = "试验设备")
    /**
     * è¯•验设备Id å…³è”
     **/
    private Integer deviceId;
    @ApiModelProperty(value = "结论")
    /**
     * ç»“论
     **/
    private Integer result;
    @ApiModelProperty(value = "检验人")
    /**
     * æ£€éªŒå•Id
     **/
    private Integer inspectId;
    /**
     * æ£€éªŒäºº
     **/
    private String username;
    @TableField(fill = FieldFill.INSERT)
    /**
     * ç±»åž‹ 1:过程;2:成品
     **/
    private Integer type;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/ProcessInspect.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * è¿‡ç¨‹æ£€éªŒ(ProcessInspect)表实体类
 *
 * @author zss
 * @since 2023-09-06 13:36:03
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("process_inspect")
public class ProcessInspect implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * è®¢å•号
     **/
    private String orderNumber;
    /**
     * äº§å“åç§°
     **/
    private String material;
    /**
     * äº§å“ç¼–码
     **/
    private String materialCode;
    /**
     * å•位
     **/
    private String unit;
    /**
     * æ•°é‡
     **/
    private Integer quantity;
    /**
     * è§„格型号
     **/
    private String specificationsModel;
    /**
     * å·¥åº
     **/
    private String techfather;
    /**
     * å·¥è‰º
     **/
    private String techname;
    /**
     * æŠ¥æ£€äºº:用户id
     **/
    private Integer userId;
    /**
     * æ£€éªŒç»“论;0:不合格;1:合格
     **/
    private Integer result;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/StatisticsData.java
ÎļþÒÑɾ³ý
inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java
@@ -7,17 +7,11 @@
public class UpdateInspectionItemDto {
    @ApiModelProperty(value = "检验值Id:根据这个ID修改", required = true, example = "5079")
    String inspectionItemId;
    @ApiModelProperty(value = "标准值", required = true, example = ">=1")
    private String required;
    @ApiModelProperty(value = "内控值", required = true, example = ">2")
    private String internal;
    Integer inspectionItemId;
    @ApiModelProperty(value = "检验值", required = true, example = "3")
    String inspectionValue;
    @ApiModelProperty(value = "试验设备", required = true, example = "1")
    String deviceId;
    Integer deviceId;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.yuanchu.mom.pojo.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
//新增成品检验参数
public class FinishedInspectVo {
    @NotBlank(message = "订单号不能为空!")
    private String orderNumber;
    @NotBlank(message = "客户名称不能为空!")
    private String prname;
    @NotBlank(message = "工程名称不能为空!")
    private String sname;
    @NotBlank(message = "质量追溯号不能为空!")
    private String qualityTraceability;
    @NotBlank(message = "单位不能为空!")
    private String unit;
    @NotNull(message = "数量不能为空!")
    private Integer quantity;
    @NotBlank(message = "规格型号不能为空!")
    private String specificationsModel;
    @NotBlank(message = "产品名称不能为空!")
    private String material;
    @NotBlank(message = "产品编码不能为空!")
    private String mcode;
    @NotNull(message = "生产订单id不能为空!")
    private Integer id;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java
ÎļþÃû´Ó inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo1.java ÐÞ¸Ä
@@ -7,7 +7,7 @@
@Data
//新增过程检验参数
public class FinishedInspectVo1 {
public class ProcessInspectVo {
    @NotBlank(message = "订单号不能为空!")
    private String orderNumber;
@@ -30,12 +30,10 @@
    @NotBlank(message = "工艺不能为空!")
    private String techname;
    @NotNull(message = "数量不能为空!")
    private Integer quantity;
    @NotNull(message = "关联的工艺路线id不能为空!")
    private Integer technologyId;
    //检验值
    private String inspectionValue;
    //设备id
    private Integer deviceId;
}
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
@@ -2,9 +2,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo1;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -20,15 +20,8 @@
 */
public interface FinishedInspectService extends IService<FinishedInspect> {
    @Transactional(rollbackFor = Exception.class)
    Integer addProcessInspectionSheet(FinishedInspect finishedInspect);
    Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result);
    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
    /**
     * æ–°å¢žè¿‡ç¨‹æ£€éªŒå•-->根据订单号选择产品信息
     * æ–°å¢žæ£€éªŒå•-->根据订单号选择产品信息
     *
     * @param orderNumber
     * @return
@@ -36,19 +29,34 @@
    List<Map<String, Object>> chooseMater(String orderNumber);
    /**
     * æ–°å¢žè¿‡ç¨‹æ£€éªŒå•
     * æ–°å¢žæˆå“æ£€éªŒå•
     *
     * @param finishedInspectVo1
     * @param finishedInspectVo
     * @return
     */
    String addProcess(String userId, FinishedInspectVo1 finishedInspectVo1);
    Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo);
    /**
     * æ–°å¢žè¿‡ç¨‹æ£€éªŒå•-->选择设备
     * @param mtid
     * @param father
     * @param name
     * ä¸ŠæŠ¥(更新检验状态)
     * @param id
     * @return
     */
    List<Map<String,Object>> chooseDev(Integer technologyId, String father, String name);
    String updateFinishInspectsById(String username,Integer id);
    /**
     * åˆ†é¡µæŸ¥è¯¢æˆå“æ£€éªŒå•列表
     * @param page
     * @param result
     * @param material
     * @return
     */
    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material);
    /**
     * æ ¹æ®æ£€éªŒå•id查询成品检验单详情
     * @param id
     * @return
     */
    List<Map<String,Object>> selectFinishInspectsListById(Integer id);
}
inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java
@@ -1,7 +1,7 @@
package com.yuanchu.mom.service;
import com.yuanchu.mom.pojo.InspectionItem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.InspectionItem;
import com.yuanchu.mom.pojo.dto.InspectionItemDto;
import com.yuanchu.mom.pojo.dto.UpdateInspectionItemDto;
@@ -18,11 +18,28 @@
 */
public interface InspectionItemService extends IService<InspectionItem> {
    void insertList(Integer finishInspectId, List<Map<String, Object>> list);
    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId);
    /**
     * æ–°å¢žæŒ‰é’®-->2、查询所有检验项目
     * @param finishInspectId
     * @return
     */
    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId, Integer type);
    /**
     * æ–°å¢žæŒ‰é’®-->2、检验项目-->失去焦点发起该请求
     * @param username
     * @param updateInspectionItemDto
     * @return
     */
    Integer addProcessInspectionSheet(String username, UpdateInspectionItemDto updateInspectionItemDto);
    List<Map<String, Object>> selectDeviceIdAndName();
    /**
     * æ–°å¢žæŒ‰é’®-->选择设备
     * @param technologyId
     * @param father
     * @param name
     * @return
     */
    List<Map<String, Object>> chooseDev(Integer technologyId, String father, String name);
}
inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.ProcessInspect;
import com.yuanchu.mom.pojo.vo.ProcessInspectVo;
import java.util.List;
import java.util.Map;
/**
 * è¿‡ç¨‹æ£€éªŒ(ProcessInspect)表服务接口
 *
 * @author zss
 * @since 2023-09-06 13:36:03
 */
public interface ProcessInspectService extends IService<ProcessInspect> {
    /**
     * æ–°å¢žè¿‡ç¨‹æ£€éªŒå•-->根据订单号选择产品信息和工艺
     * @param orderNumber
     * @return
     */
    List<Map<String, Object>> chooseMater(String orderNumber);
    /**
     * æ–°å¢žè¿‡ç¨‹æ£€éªŒå•
     * @param id
     * @param processInspectVo
     * @return
     */
    Integer addProcess(String id, ProcessInspectVo processInspectVo);
    /**
     * ä¸ŠæŠ¥(更新检验状态)
     * @param id
     * @return
     */
    String updateProcessInspectsById(Integer id);
    /**
     * æ ¹æ®æ£€éªŒå•id查询过程检验单详情
     * @param id
     * @return
     */
    List<Map<String,Object>> selectProcessInspectsListById(Integer id);
    /**
     * åˆ†é¡µæŸ¥è¯¢è¿‡ç¨‹æ£€éªŒå•列表
     * @param page
     * @param techfather
     * @param result
     * @param name
     * @return
     */
    IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name);
}
inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
@@ -47,15 +47,4 @@
     */
    String updateRawInspectsById(Integer id);
    /**
     * æ ¹æ®åŽŸææ–™æ£€éªŒå•id删除
     * @param id
     */
    void delRawInsById(Integer id);
    /**
     * æ‰¹é‡åˆ é™¤
     * @param ids
     */
    void delAllRawIns(String ids);
}
inspect-server/src/main/java/com/yuanchu/mom/service/ResportService.java
ÎļþÒÑɾ³ý
inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
@@ -3,12 +3,11 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo1;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
import com.yuanchu.mom.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
@@ -17,7 +16,6 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -35,7 +33,7 @@
public class FinishedInspectServiceImpl extends ServiceImpl<FinishedInspectMapper, FinishedInspect> implements FinishedInspectService {
    @Resource
    private FinishedInspectMapper finishedInspectMapper;
    FinishedInspectMapper finishedInspectMapper;
    @Resource
    MaterialMapper materialMapper;
@@ -47,13 +45,16 @@
    SpecificationsService specificationsService;
    @Resource
    InspectionItemService inspectionItemService;
    @Autowired
    private ProductService productService;
    ManualTechnologyMapper manualTechnologyMapper;
    @Resource
    UserMapper userMapper;
    ProductService productService;
    @Resource
    InspectionItemService inspectionItemService;
    @Resource
    InspectionItemMapper inspectionItemMapper;
    @Resource
    InspectUnacceptedMapper inspectUnacceptedMapper;
@@ -61,228 +62,125 @@
    @Resource
    RepertoryMapper repertoryMapper;
    @Resource
    ImportRepertoryMapper importRepertoryMapper;
    @Resource
    TechnologyMapper technologyMapper;
    @Resource
    TechniqueMapper techniqueMapper;
    @Override
    public Integer addProcessInspectionSheet(FinishedInspect finishedInspect) {
        finishedInspect.setType(0);
        int insert = finishedInspectMapper.insert(finishedInspect);
        if (insert == 1) {
            /*List<Map<String, Object>> maps = productService.selectProductList(finishedInspect.getSpecificationsId());
            inspectionItemService.insertList(finishedInspect.getId(), maps);*/
            return insert;
        }
        return 0;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result) {
        //更新检验单里面的检验结论
        LambdaUpdateWrapper<FinishedInspect> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(FinishedInspect::getId, finishedInspectId);
        updateWrapper.set(FinishedInspect::getResult, result);
        finishedInspectMapper.update(new FinishedInspect(), updateWrapper);
        FinishedInspect finishedInspect = finishedInspectMapper.selectById(finishedInspectId);
        /*检验结论为不合格*/
        if (result == 0) {
            //如果是成品的结论为不合格,需要新增成品不合格检验单
            if (finishedInspect.getType() == 0) {
                /*新增成品不合格检验单*/
                InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder()
                        .reason(finishedInspect.getProjectName() + "不合格")  //暂且定义为工程名称不合格
                        .rawInspectId(finishedInspectId)
                        .build();
                inspectUnacceptedMapper.insert(inspectUnaccepted);
            }
            //如果是过程检验的结论为不合格,需要新增半成品库存且检验结果为不合格
            if (finishedInspect.getType() == 1) {
                /*新增半成品(1)库存*/
                //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
                LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
                        .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
                        .eq(Repertory::getName, finishedInspect.getMaterial())
                        .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
                        .eq(Repertory::getUnit, finishedInspect.getUnit())
                        .eq(Repertory::getType, 1)
                        .eq(Repertory::getCheckResult, 0);
                Repertory rep = repertoryMapper.selectOne(queryWrapper);
                if (rep != null) {
                    rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                    rep.setUserName(username);
                    repertoryMapper.updateById(rep);
                } else {
                    //如果除了库存别的信息有任何一个不一样,则新增一条半成品库存
                    Repertory repertory = Repertory.builder()
                            .orderCode(finishedInspect.getOrderNumber())
                            .qualityTraceability(finishedInspect.getQualityTraceability())
                            .name(finishedInspect.getMaterial())
                            .specifications(finishedInspect.getSpecificationsModel())
                            .unit(finishedInspect.getUnit())
                            .number(finishedInspect.getQuantity())
                            .userName(username)
                            .type(1)
                            .checkResult(0)//检验结果为不合格
                            .build();
                    repertoryMapper.insert(repertory);
                }
            }
        }
        /*检验结论为合格*/
        if (result == 1) {
            //如果是成品检验合格,,需要新增成品(0)库存和入库记录
            if (finishedInspect.getType() == 0) {
                /*新增成品入库记录*/
                ImportRepertory importRepertory = ImportRepertory.builder()
                        .orderCode(finishedInspect.getOrderNumber())
                        .qualityTraceability(finishedInspect.getQualityTraceability())
                        .name(finishedInspect.getMaterial())
                        .specifications(finishedInspect.getSpecificationsModel())
                        .unit(finishedInspect.getUnit())
                        .number(finishedInspect.getQuantity())
                        .userName(username)
                        .build();
                importRepertoryMapper.insert(importRepertory);
                /*新增成品(0)库存*/
                //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
                LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
                        .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
                        .eq(Repertory::getName, finishedInspect.getMaterial())
                        .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
                        .eq(Repertory::getUnit, finishedInspect.getUnit())
                        .eq(Repertory::getType, 0)
                        .eq(Repertory::getCheckResult, 1);
                Repertory rep = repertoryMapper.selectOne(queryWrapper);
                if (rep != null) {
                    rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                    rep.setUserName(username);
                    repertoryMapper.updateById(rep);
                } else {
                    //如果除了库存别的信息有任何一个不一样,则新增一条成品库存
                    Repertory repertory = Repertory.builder()
                            .orderCode(finishedInspect.getOrderNumber())
                            .qualityTraceability(finishedInspect.getQualityTraceability())
                            .name(finishedInspect.getMaterial())
                            .specifications(finishedInspect.getSpecificationsModel())
                            .unit(finishedInspect.getUnit())
                            .number(finishedInspect.getQuantity())
                            .userName(username)
                            .type(0)
                            .checkResult(1)   //库存检验结果为合格
                            .build();
                    repertoryMapper.insert(repertory);
                }
            }
            //如果是过程检验合格,需要新增半成品(1)库存,检验结果为合格1
            if (finishedInspect.getType() == 1) {
                /*新增半成品(1)库存*/
                //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
                LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
                        .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
                        .eq(Repertory::getName, finishedInspect.getMaterial())
                        .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
                        .eq(Repertory::getUnit, finishedInspect.getUnit())
                        .eq(Repertory::getType, 1)
                        .eq(Repertory::getCheckResult, 1);
                Repertory rep = repertoryMapper.selectOne(queryWrapper);
                if (rep != null) {
                    rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                    rep.setUserName(username);
                    repertoryMapper.updateById(rep);
                } else {
                    //如果除了库存别的信息有任何一个不一样,则新增一条半成品库存
                    Repertory repertory = Repertory.builder()
                            .orderCode(finishedInspect.getOrderNumber())
                            .qualityTraceability(finishedInspect.getQualityTraceability())
                            .name(finishedInspect.getMaterial())
                            .specifications(finishedInspect.getSpecificationsModel())
                            .unit(finishedInspect.getUnit())
                            .number(finishedInspect.getQuantity())
                            .userName(username)
                            .type(1)
                            .checkResult(1)//检验结果为合格
                            .build();
                    repertoryMapper.insert(repertory);
                }
            }
        }
        return 1;
    }
    @Override
    public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername) {
        return finishedInspectMapper.selectFinishedInspectPage(page, inspectResult, inspectDate, inspectUsername);
    }
    //新增过程检验单-->根据订单号选择产品信息
    //新增检验单-->根据订单号选择产品信息
    @Override
    public List<Map<String, Object>> chooseMater(String orderNumber) {
        return finishedInspectMapper.chooseMater(orderNumber);
    }
    //新增过程检验单
    //新增成品检验单
    @Override
    @Transactional(rollbackFor = Exception.class)
    public String addProcess(String userId, FinishedInspectVo1 finishedInspectVo1) {
        /*新增过程检验单*/
    public Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo) {
        /*新增成品检验单*/
        FinishedInspect finishedInspect = new FinishedInspect();
        finishedInspect.setType(1);
        finishedInspect.setUserId(Integer.parseInt(userId));
        BeanUtils.copyProperties(finishedInspectVo1, finishedInspect);
        finishedInspect.setOrderNumber(finishedInspectVo.getOrderNumber());
        finishedInspect.setCustomerName(finishedInspectVo.getPrname());
        finishedInspect.setProjectName(finishedInspectVo.getSname());
        finishedInspect.setQualityTraceability(finishedInspectVo.getQualityTraceability());
        finishedInspect.setUnit(finishedInspectVo.getUnit());
        finishedInspect.setQuantity(finishedInspectVo.getQuantity());
        finishedInspect.setSpecificationsModel(finishedInspectVo.getSpecificationsModel());
        finishedInspect.setMaterial(finishedInspectVo.getMaterial());
        finishedInspect.setMaterialCode(finishedInspectVo.getMcode());
        finishedInspectMapper.insert(finishedInspect);
        /*批量新增过程检验项目表*/
        /*批量新增成品检验项目单*/
        //获取型号id
        Integer specificationId = getSpecificationId(finishedInspectVo1.getMaterial(), finishedInspectVo1.getMaterialCode(), finishedInspectVo1.getSpecificationsModel());
        Integer specificationId = getSpecificationId(finishedInspectVo.getMaterial(), finishedInspectVo.getMcode(), finishedInspectVo.getSpecificationsModel());
        //根据生产订单id查询编制工序的最后一道工艺
        List<ManualTechnology> manualTechnologyList = manualTechnologyMapper.selAllByMoId(finishedInspectVo.getId());
        //获取最后一道工艺关联的工艺路线id
        Integer technologyId = manualTechnologyList.get(0).getTechnologyId();
        //查询标准BOM技术指标中该型号工艺下最新版本的检验项目
        Integer ver = productService.selectVerByPro(specificationId).get(0);//该型号下技术指标最新版本
        List<Product> productList = productService.selProByVerSpe(finishedInspectVo1.getTechnologyId(), ver);
        List<Product> productList = productService.selProByVerSpe(technologyId, ver);
        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
            InspectionItem inspectionItem = new InspectionItem();
            BeanUtils.copyProperties(product, inspectionItem);
            inspectionItem.setFinishInspectId(finishedInspect.getId());
            //如果新增时还填写了检验值则要进行判断检验结果
            if (ObjectUtils.isNotEmpty(finishedInspectVo1.getInspectionValue())) {
                inspectionItem.setInspectionValue(finishedInspectVo1.getInspectionValue());
                //判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格0
                String required = product.getRequired();//标准值
                String internal = product.getInternal();//内控值
                String testValue = finishedInspectVo1.getInspectionValue();//检测值
                List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
                    int values = checkValues(required, internal, s);
                    return values;
                }).collect(Collectors.toList());
                if (list.contains(0)) {
                    //如果其中一个检验值不合格则该项目检验不合格
                    inspectionItem.setResult(0);
                } else {
                    inspectionItem.setResult(1);
                }
                inspectionItem.setUsername(userMapper.selectById(userId).getName());
            }
            inspectionItem.setInspectId(finishedInspect.getId());
            inspectionItem.setType(2);//成品
            return inspectionItem;
        }).collect(Collectors.toList());
        inspectionItemService.saveBatch(inspectionItemList);
        return "新增过程检验单"+finishedInspect.getId()+"成功!";
        return finishedInspect.getId();
    }
    //新增过程检验单-->选择设备
    //上报(更新检验状态)
    @Override
    public List<Map<String, Object>> chooseDev(Integer technologyId, String father, String name) {
        //该工艺id下生产工艺最新版本
        Integer ver = techniqueMapper.selectVerByTeId(technologyId).get(0);
        return techniqueMapper.selDevByVerTecIdFaNam(technologyId,father,name,ver);
    @Transactional(rollbackFor = Exception.class)
    public String updateFinishInspectsById(String username,Integer id) {
        /*更新检验单里面的检验结论*/
        //先判断检验结果
        List<Integer> results = inspectionItemMapper.getResult(id,1);
        int count = 0;
        for (Integer result : results) {
            if (result != null && result == 1) {
                count++;
            }
        }
        FinishedInspect finishedInspect = finishedInspectMapper.selectById(id);
        //如果检验项目中的结论包含不合格则检验单不合格
        if (results.contains(0)) {
            finishedInspect.setResult(0);//不合格
            //更新检验单
            finishedInspectMapper.updateById(finishedInspect);
        } else if (count == results.size()) {
            finishedInspect.setResult(1);//合格
            finishedInspectMapper.updateById(finishedInspect);
        } else return "项目未检验完!";
        /*如果检验结论为不合格,则需要新增不合格检验单*/
        if (finishedInspect.getResult() == 0) {
            InspectUnaccepted finishUnaccepted = InspectUnaccepted.builder()
                    .reason(finishedInspect.getMaterial() + "不合格")  //暂且定义为产品名称不合格
                    .rawInspectId(id)
                    .type(1)        //类型为成品检验
                    .build();
            inspectUnacceptedMapper.insert(finishUnaccepted);
        }
        /*如果检验结论为合格,则需要新增半成品库存*/
        if (finishedInspect.getResult() == 1) {
            //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
                    .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
                    .eq(Repertory::getName, finishedInspect.getMaterial())
                    .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
                    .eq(Repertory::getUnit, finishedInspect.getUnit())
                    .eq(Repertory::getType, 1);
            Repertory rep = repertoryMapper.selectOne(queryWrapper);
            if (rep != null ) {
                rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                rep.setUserName(username);
                repertoryMapper.updateById(rep);
            } else {
                //如果除了库存别的信息有任何一个不一样,则新增一条成品库存
                Repertory repertory = new Repertory();
                repertory.setOrderCode(finishedInspect.getOrderNumber());
                repertory.setQualityTraceability(finishedInspect.getQualityTraceability());
                repertory.setName(finishedInspect.getMaterial());
                repertory.setSpecifications(finishedInspect.getSpecificationsModel());
                repertory.setUnit(finishedInspect.getUnit());
                repertory.setNumber(finishedInspect.getQuantity());
                repertory.setUserName(username);
                repertory.setType(1);//半成品
                repertory.setCheckResult(1);//暂定不删
                repertoryMapper.insert(repertory);
            }
        }
        return "上报成功!";
    }
    //分页查询成品检验单列表
    @Override
    public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material) {
        return finishedInspectMapper.selectFinishedInspectPage(page, result,material);
    }
    //根据检验单id查询成品检验单详情
    @Override
    public List<Map<String, Object>> selectFinishInspectsListById(Integer id) {
        return finishedInspectMapper.selectFinishInspectsListById(id);
    }
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java
@@ -1,26 +1,21 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.InspectionItem;
import com.yuanchu.mom.mapper.InspectionItemMapper;
import com.yuanchu.mom.mapper.TechniqueMapper;
import com.yuanchu.mom.pojo.InspectionItem;
import com.yuanchu.mom.pojo.dto.InspectionItemDto;
import com.yuanchu.mom.pojo.dto.UpdateInspectionItemDto;
import com.yuanchu.mom.service.DeviceService;
import com.yuanchu.mom.service.InspectionItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.service.SpecificationsService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.MyUtil;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -36,51 +31,48 @@
    @Resource
    private InspectionItemMapper inspectionItemMapper;
    @Autowired
    private DeviceService deviceService;
    @Resource
    TechniqueMapper techniqueMapper;
    //新增按钮-->2、查询所有检验项目
    @Override
    public void insertList(Integer finishInspectId, List<Map<String, Object>> list) {
        List<InspectionItem> list1 = new ArrayList<>();
        for (Map<String, Object> map : list){
            try {
                InspectionItem inspectionItem = JackSonUtil.unmarshal(JackSonUtil.marshal(map), InspectionItem.class);
                inspectionItem.setFinishInspectId(finishInspectId);
                list1.add(inspectionItem);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
        inspectionItemMapper.insertBatchSomeColumn(list1);
    public List<InspectionItemDto> selectInspectionItem(Integer finishInspectId, Integer type) {
        return inspectionItemMapper.selectInspectionItem(finishInspectId,type);
    }
    //新增过程检验单-->选择设备
    @Override
    public List<InspectionItemDto> selectInspectionItem(Integer finishInspectId) {
        return inspectionItemMapper.selectInspectionItem(finishInspectId);
    public List<Map<String, Object>> chooseDev(Integer technologyId, String father, String name) {
        //该工艺id下生产工艺最新版本
        Integer ver = techniqueMapper.selectVerByTeId(technologyId).get(0);
        return techniqueMapper.selDevByVerTecIdFaNam(technologyId, father, name, ver);
    }
    //新增按钮-->2、检验项目-->失去焦点发起该请求
    @Override
    public Integer addProcessInspectionSheet(String username, UpdateInspectionItemDto updateInspectionItemDto) {
        LambdaUpdateWrapper<InspectionItem> wrapper = new LambdaUpdateWrapper<>();
        wrapper.eq(InspectionItem::getId, updateInspectionItemDto.getInspectionItemId());
        wrapper.set(InspectionItem::getInspectionValue, updateInspectionItemDto.getInspectionValue());
        wrapper.set(InspectionItem::getDeviceId, updateInspectionItemDto.getDeviceId());
        int i = checkValues(updateInspectionItemDto.getRequired(), updateInspectionItemDto.getInternal(), updateInspectionItemDto.getInspectionValue());
        wrapper.set(InspectionItem::getResult, i);
        wrapper.set(InspectionItem::getUsername, username);
        int update = inspectionItemMapper.update(new InspectionItem(), wrapper);
        if (update > 0){
            return i;
        //查询内控值和标准值
        InspectionItem inspectionItem = inspectionItemMapper.selectById(updateInspectionItemDto.getInspectionItemId());
        inspectionItem.setInspectionValue(updateInspectionItemDto.getInspectionValue());
        inspectionItem.setDeviceId(updateInspectionItemDto.getDeviceId());
        List<Integer> list = Arrays.stream( updateInspectionItemDto.getInspectionValue().split(",")).map(s -> {
            int values = checkValues(inspectionItem.getRequired(),  inspectionItem.getInternal(), s);
            return values;
        }).collect(Collectors.toList());
        if (list.contains(0)) {
            //如果其中一个检验值不合格则该项目检验不合格
            inspectionItem.setResult(0);
        } else {
            inspectionItem.setResult(1);
        }
        return 2;
        inspectionItemMapper.updateById(inspectionItem);
        //返回检验项目的结论
        return inspectionItem.getResult();
    }
    @Override
    public List<Map<String, Object>> selectDeviceIdAndName() {
        LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>();
        wrapper.select(Device::getId, Device::getName);
        return deviceService.listMaps(wrapper);
    }
    /*判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格*/
    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,205 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.vo.ProcessInspectVo;
import com.yuanchu.mom.service.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * è¿‡ç¨‹æ£€éªŒ(ProcessInspect)表服务实现类
 *
 * @author zss
 * @since 2023-09-06 13:36:03
 */
@Service
public class ProcessInspectServiceImpl extends ServiceImpl<ProcessInspectMapper, ProcessInspect> implements ProcessInspectService {
    @Resource
    ProcessInspectMapper processInspectMapper;
    @Resource
    MaterialMapper materialMapper;
    @Resource
    StandardService standardService;
    @Resource
    SpecificationsService specificationsService;
    @Resource
    ProductService productService;
    @Resource
    InspectionItemMapper inspectionItemMapper;
    @Resource
    InspectionItemService inspectionItemService;
    @Resource
    InspectUnacceptedMapper inspectUnacceptedMapper;
    //新增过程检验单-->根据订单号选择产品信息和工艺
    @Override
    public List<Map<String, Object>> chooseMater(String orderNumber) {
        return processInspectMapper.chooseMater(orderNumber);
    }
    //新增过程检验单
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer addProcess(String userId, ProcessInspectVo processInspectVo) {
        /*新增过程检验单*/
        ProcessInspect processInspect = new ProcessInspect();
        processInspect.setUserId(Integer.parseInt(userId));
        BeanUtils.copyProperties(processInspectVo, processInspect);
        processInspectMapper.insert(processInspect);
        /*批量新增过程检验项目表*/
        //获取型号id
        Integer specificationId = getSpecificationId(processInspectVo.getMaterial(), processInspectVo.getMaterialCode(), processInspectVo.getSpecificationsModel());
        //查询标准BOM技术指标中该型号工艺下最新版本的检验项目
        Integer ver = productService.selectVerByPro(specificationId).get(0);//该型号下技术指标最新版本
        List<Product> productList = productService.selProByVerSpe(processInspectVo.getTechnologyId(), ver);
        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
            InspectionItem inspectionItem = new InspectionItem();
            BeanUtils.copyProperties(product, inspectionItem);
            inspectionItem.setInspectId(processInspect.getId());
            inspectionItem.setType(1);
            return inspectionItem;
        }).collect(Collectors.toList());
        inspectionItemService.saveBatch(inspectionItemList);
        return processInspect.getId();
    }
    //上报(更新检验状态)
    @Override
    @Transactional(rollbackFor = Exception.class)
    public String updateProcessInspectsById(Integer id) {
        /*更新检验单里面的检验结论*/
        //先判断检验结果
        List<Integer> results = inspectionItemMapper.getResult(id,1);
        int count = 0;
        for (Integer result : results) {
            if (result != null && result == 1) {
                count++;
            }
        }
        ProcessInspect processInspect = processInspectMapper.selectById(id);
        //如果检验项目中的结论包含不合格则检验单不合格
        if (results.contains(0)) {
            processInspect.setResult(0);//不合格
            //更新检验单
            processInspectMapper.updateById(processInspect);
        } else if (count == results.size()) {
            processInspect.setResult(1);//合格
            processInspectMapper.updateById(processInspect);
        } else return "项目未检验完!";
        /*如果检验结论为不合格,则需要新增不合格检验单*/
        if (processInspect.getResult() == 0) {
            InspectUnaccepted processUnaccepted = InspectUnaccepted.builder()
                    .reason(processInspect.getMaterial() +processInspect.getTechname()+ "不合格")  //暂且定义为产品名称+工艺不合格
                    .rawInspectId(id)
                    .type(2)        //类型为过程检验
                    .build();
            inspectUnacceptedMapper.insert(processUnaccepted);
        }
        return "上报成功!";
    }
    //根据检验单id查询过程检验单详情
    @Override
    public List<Map<String, Object>> selectProcessInspectsListById(Integer id) {
        return processInspectMapper.selectProcessInspectsListById(id);
    }
    //分页查询过程检验单列表
    @Override
    public IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name) {
        return processInspectMapper.selectProcessInspectsList(page,techfather,result,name);
    }
    /*根据样品名称,样品编号,型号规格获取型号id*/
    private Integer getSpecificationId(String name, String mcode, String specification) {
        //获取物料id
        Material material = materialMapper.selectOne(Wrappers.<Material>query()
                .eq("name", name)
                .eq("code", mcode));
        if (Objects.isNull(material)) {
            return null;
        }
        //获取规格名称和型号名称
        String[] split = specification.split("-");
        String stName = split[0];
        String spName = split[1];
        //获取规格id
        Standard standard = standardService.getOne(Wrappers.<Standard>query()
                .eq("name", stName)
                .eq("material_id", material.getId()));
        //获取型号id
        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
                .eq("name", spName)
                .eq("standard_id", standard.getId()));
        return specifications.getId();
    }
    /*判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格*/
    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
        boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
        boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
        if (isStandardValueSatisfied && isControlValueSatisfied) {
            return 1;
        } else {
            return 0;
        }
    }
    private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
        String substring = valueStr.substring(1, 2);
        if (substring.equals("=")) {
            String operator = valueStr.substring(0, 2);
            Double standardValue = Double.parseDouble(valueStr.substring(2));
            Double detectionValue = Double.parseDouble(detectionValueStr);
            switch (operator) {
                case ">=":
                    return detectionValue >= standardValue;
                case "<=":
                    return detectionValue <= standardValue;
                default:
                    return false;
            }
        } else {
            String operator = valueStr.substring(0, 1);
            Double standardValue = Double.parseDouble(valueStr.substring(1));
            Double detectionValue = Double.parseDouble(detectionValueStr);
            switch (operator) {
                case ">":
                    return detectionValue > standardValue;
                case "≥":
                    return detectionValue >= standardValue;
                case "≤":
                    return detectionValue <= standardValue;
                case "<":
                    return detectionValue < standardValue;
                case "=":
                    return detectionValue.equals(standardValue);
                default:
                    return false;
            }
        }
    }
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -147,34 +147,6 @@
        return "上报成功!";
    }
    //根据原材料检验单id删除
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delRawInsById(Integer id) {
        /*删除原材料检验单*/
        RawInspect rawInspect = new RawInspect();
        rawInspect.setId(id);
        rawInspect.setState(0);
        rawInspectMapper.updateById(rawInspect);
        /*删除原材料检验项目表*/
        rawInsProductMapper.updaRawInsById(id);
        /*删除原材料不合格单*/
        inspectUnacceptedMapper.updaRawIns(id);
    }
    //批量删除
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delAllRawIns(String ids) {
        /*批量删除原材料检验单*/
        rawInspectMapper.delAllRawIns(ids);
        /*批量删除原材料检验项目表*/
        rawInsProductMapper.delAllRawIns(ids);
        /*批量删除原材料不合格单*/
        inspectUnacceptedMapper.delAllRawIns(ids);
    }
    /*判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格*/
    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
inspect-server/src/main/java/com/yuanchu/mom/service/impl/ResportServiceImpl.java
ÎļþÒÑɾ³ý
inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
@@ -2,76 +2,119 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.FinishedInspectMapper">
    <select id="selectFinishedInspectPage" resultType="map">
        SELECT f.`id`, f.`order_number`, f.`customer_name`, f.`project_name`, f.`quality_traceability`,
        f.`material_code`, f.`material`, f.`specifications_model`, f.`unit`,
        f.`quantity`, u.`name`, DATE_FORMAT(f.`create_time`, '%Y-%m-%d') detectionPeriod, f.`result`
        FROM finished_inspect f, `user` u
        SELECT f.`id`,
        f.`order_number`,
        f.`customer_name`,
        f.`project_name`,
        f.`quality_traceability`,
        f.`material_code`,
        f.`material`,
        f.`specifications_model`,
        f.`unit`,
        f.`quantity`,
        u.`name`,
        DATE_FORMAT(f.`create_time`, '%Y-%m-%d') detectionPeriod,
        f.`result`
        FROM mom_ocean.finished_inspect f, mom_ocean.`user` u
        WHERE f.`user_id` = u.`id`
        AND f.`state` = 1
        <if test="inspectResult != null and inspectResult != ''">
            AND f.result = #{inspectResult}
        <if test="result != null ">
            AND f.result = #{result}
        </if>
        <if test="inspectDate != null and inspectDate != ''">
            AND DATE_FORMAT(f.`create_time`, '%Y-%m-%d') = #{inspectDate}
        </if>
        <if test="inspectUsername != null and inspectUsername != ''">
            AND u.`name` LIKE CONCAT('%',#{inspectUsername},'%')
        <if test="material != null and material != ''">
            AND f.`material` LIKE CONCAT('%',#{material},'%')
        </if>
    </select>
    <select id="selCountFin" resultType="java.lang.Integer">
        select count(id)
        from mom_ocean.finished_inspect
        where state=1
        and result=#{result}
        and type=#{type}
        <if test="begin != null and begin!=''">
            and finished_inspect.create_time &gt;= #{begin}
        </if>
        <if test="end != null and end!=''">
            and finished_inspect.create_time &lt;= #{end}
        </if>
    </select>
    <select id="seAllCount" resultType="java.lang.Long">
        select count(id)
        from mom_ocean.finished_inspect
        where state=1
        and type=#{type}
        <if test="begin != null and begin!=''">
            and finished_inspect.create_time &gt;= #{begin}
        </if>
        <if test="end != null and end!=''">
            and finished_inspect.create_time &lt;= #{end}
        </if>
    </select>
    <!--新增过程检验单-根据订单号选择产品信息-->
    <!--新增检验单-根据订单号选择产品信息-->
    <resultMap id="oneMap" type="map">
        <id property="name" column="material"/>
        <result property="code" column="code"/>
        <result property="specifications" column="specifications"/>
        <result property="unit" column="unit"/>
        <id property="prname" column="prname"/>
        <result property="sname" column="sname"/>
        <collection property="children" resultMap="twoMap" javaType="List"/>
    </resultMap>
    <resultMap id="twoMap" type="map">
        <result property="name" column="techfather"/>
        <id property="id" column="moid"/>
        <result property="name" column="material"/>
        <result property="mcode" column="mcode"/>
        <result property="qualityTraceability" column="quality_traceability"/>
        <result property="specifications" column="specifications"/>
        <result property="unit" column="unit"/>
        <collection property="children" resultMap="threeMap" javaType="List"/>
    </resultMap>
    <resultMap id="threeMap" type="map">
        <id property="id" column="technologyId"/>
        <result property="name" column="techname"/>
    </resultMap>
    <select id="chooseMater" resultMap="oneMap">
        select mo.name material,
               code,
        select s.proname prname,
               s.name    sname,
               quality_traceability,
               m.code    mcode,
               mo.name   material,
               specifications,
               unit,
               technology_id   technologyId,
               techfather,
               techname
        from mom_ocean.manual_technology mt
                 left join mom_ocean.manufacture_order mo on mt.manufacture_order_id = mo.id
               mo.id     moid
        from mom_ocean.manufacture_order mo
                 left join mom_ocean.material m on m.name = mo.name
                 left join mom_ocean.sale s on order_number = order_code
        where mo.state = 1
          and type = 1
          and m.type = 1
          and order_code = #{orderNumber}
    </select>
    <!--根据检验单id查询成品检验单详情-->
    <resultMap id="seProInsListById" type="map">
        <id property="name" column="order_number"/>
        <result property="customerName" column="customer_name"/>
        <result property="projectName" column="project_name"/>
        <result property="qualityTraceability" column="quality_traceability"/>
        <result property="materialCode" column="material_code"/>
        <result property="material" column="material"/>
        <result property="specifications" column="specifications_model"/>
        <result property="funit" column="funit"/>
        <result property="quantity" column="quantity"/>
        <result property="fresult" column="fresult"/>
        <collection property="children" resultMap="seProInsListByIdmap" javaType="List"/>
    </resultMap>
    <resultMap id="seProInsListByIdmap" type="map">
        <result property="ifather" column="ifather"/>
        <collection property="children" resultMap="seProInsListByIdmaps" javaType="List"/>
    </resultMap>
    <resultMap id="seProInsListByIdmaps" type="map">
        <id property="iid" column="iid"/>
        <result property="iname" column="iname"/>
        <result property="iunit" column="iunit"/>
        <result property="required" column="required"/>
        <result property="internal" column="internal"/>
        <result property="inspectionValue" column="inspection_value"/>
        <result property="dname" column="dname"/>
        <result property="iresult" column="iresult"/>
        <result property="username" column="username"/>
    </resultMap>
    <select id="selectFinishInspectsListById" resultMap="seProInsListById">
        select order_number,
               customer_name,
               project_name,
               quality_traceability,
               material_code,
               material,
               specifications_model,
               fi.unit     funit,
               quantity,
               ii.id       iid,
               ii.father   ifather,
               ii.name     iname,
               ii.unit     iunit,
               required,
               internal,
               inspection_value,
               device.name dname,
               ii.result   iresult,
               username,
               fi.result   fresult
        from mom_ocean.inspection_item ii
                 left join mom_ocean.finished_inspect fi on fi.id = inspect_id
                 left join mom_ocean.device
                           on ii.device_id = device.id
        where ii.type = 2
          and ii.state = 1
          and fi.state = 1
          and fi.id = #{id}
    </select>
</mapper>
inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
@@ -1,20 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.InspectUnacceptedMapper">
    <!--根据原材料检验单id删除原材料不合格品-->
    <update id="updaRawIns">
        update mom_ocean.inspect_unaccepted
        set state=0
        where raw_inspect_id = #{id}
          and type = 0
    </update>
    <!--根据原材料检验单id批量删除原材料不合格品-->
    <update id="delAllRawIns">
        update mom_ocean.inspect_unaccepted
        set state=0
        where raw_inspect_id in (${ids})
          and type = 0
    </update>
    <select id="selectUnRawInspectsList" resultType="java.util.Map">
        select ru.id,
@@ -58,9 +45,9 @@
        deal_state,
        deal_reasult,
        DATE_FORMAT(deal_time, '%Y-%m-%d') processingDate
        FROM (inspect_unaccepted ru,
        `user` u)
        LEFT JOIN finished_inspect fi ON fi.`id` = ru.`raw_inspect_id`
        FROM (mom_ocean.inspect_unaccepted ru,
        mom_ocean.`user` u)
        LEFT JOIN mom_ocean.finished_inspect fi ON fi.`id` = ru.`raw_inspect_id`
        where fi.id = ru.raw_inspect_id
        AND ru.type = 1
        AND ru.state=1
inspect-server/src/main/resources/mapper/InspectionItemMapper.xml
@@ -1,12 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.InspectionItemMapper">
    <resultMap id="selectInspectionItemMap" type="inspectionItemDto">
        <id property="father" column="father"/>
        <id property="father" column="ifather"/>
        <association property="children" resultMap="selectInspectionItemDto2Map"/>
    </resultMap>
    <resultMap id="selectInspectionItemDto2Map" type="inspectionItemDto2">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
@@ -14,14 +12,34 @@
        <result property="internal" column="internal"/>
        <result property="required" column="required"/>
        <result property="inspectionValue" column="inspection_value"/>
        <result property="deviceId" column="device_id"/>
        <result property="dname" column="dname"/>
        <result property="result" column="result"/>
        <result property="username" column="username"/>
    </resultMap>
    <select id="selectInspectionItem" resultMap="selectInspectionItemMap">
        SELECT i.`id`, IFNULL(i.`father`,i.`name`) father, i.`name`, i.`unit`, i.`internal`, i.`required`, i.`inspection_value`, i.`device_id`, i.`result`
        FROM inspection_item i
        WHERE i.`finish_inspect_id` = #{finishInspectId}
        SELECT i.`id`,
               i.`father` ifather,
               i.`name`,
               i.`unit`,
               i.`internal`,
               i.`required`,
               i.`inspection_value`,
               device.name                  dname,
               i.`result`,
               username
        FROM mom_ocean.inspection_item i
                 left join mom_ocean.device on i.device_id = device.id
        WHERE i.`inspect_id` = #{id}
          AND i.`state` = 1
          and i.type = #{type}
    </select>
    <!--获取该检验单下检验项目的结果集-->
    <select id="getResult" resultType="java.lang.Integer">
        select distinct result
        from mom_ocean.inspection_item
        where state = 1
          and type = #{type}
          and inspect_id = #{id}
    </select>
</mapper>
inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.ProcessInspectMapper">
    <!--新增过程检验单-根据订单号选择产品信息和工艺-->
    <resultMap id="oneMap" type="map">
        <id property="name" column="material"/>
        <result property="code" column="code"/>
        <result property="specifications" column="specifications"/>
        <result property="unit" column="unit"/>
        <collection property="children" resultMap="twoMap" javaType="List"/>
    </resultMap>
    <resultMap id="twoMap" type="map">
        <result property="name" column="techfather"/>
        <collection property="children" resultMap="threeMap" javaType="List"/>
    </resultMap>
    <resultMap id="threeMap" type="map">
        <id property="id" column="technologyId"/>
        <result property="name" column="techname"/>
    </resultMap>
    <select id="chooseMater" resultMap="oneMap">
        select mo.name       material,
               code,
               specifications,
               unit,
               technology_id technologyId,
               techfather,
               techname
        from mom_ocean.manual_technology mt
                 left join mom_ocean.manufacture_order mo on mt.manufacture_order_id = mo.id
                 left join mom_ocean.material m on m.name = mo.name
        where mo.state = 1
          and type = 1
          and order_code = #{orderNumber}
    </select>
    <!--根据检验单id查询过程检验单详情-->
    <resultMap id="seProInsListById" type="map">
        <id property="name" column="order_number"/>
        <result property="materialCode" column="material_code"/>
        <result property="material" column="material"/>
        <result property="specifications" column="specifications_model"/>
        <result property="techfather" column="techfather"/>
        <result property="techname" column="techname"/>
        <result property="punit" column="punit"/>
        <result property="quantity" column="quantity"/>
        <result property="presult" column="presult"/>
        <collection property="children" resultMap="seProInsListByIdmap" javaType="List"/>
    </resultMap>
    <resultMap id="seProInsListByIdmap" type="map">
        <result property="ifather" column="ifather"/>
        <collection property="children" resultMap="seProInsListByIdmaps" javaType="List"/>
    </resultMap>
    <resultMap id="seProInsListByIdmaps" type="map">
        <id property="iid" column="iid"/>
        <result property="iname" column="iname"/>
        <result property="iunit" column="iunit"/>
        <result property="required" column="required"/>
        <result property="internal" column="internal"/>
        <result property="inspectionValue" column="inspection_value"/>
        <result property="dname" column="dname"/>
        <result property="iresult" column="iresult"/>
        <result property="username" column="username"/>
    </resultMap>
    <select id="selectProcessInspectsListById" resultMap="seProInsListById">
        select order_number,
               material_code,
               material,
               specifications_model,
               techfather,
               techname,
               pi.unit     punit,
               quantity,
               ii.id       iid,
               ii.father   ifather,
               ii.name     iname,
               ii.unit     iunit,
               required,
               internal,
               inspection_value,
               device.name dname,
               ii.result   iresult,
               username,
               pi.result   presult
        from mom_ocean.inspection_item ii
                 left join mom_ocean.process_inspect pi on pi.id = inspect_id
                 left join mom_ocean.device on ii.device_id = device.id
        where ii.type = 1
          and ii.state = 1
          and pi.state = 1
          and pi.id = #{id}
    </select>
    <!--分页查询过程检验单列表-->
    <select id="selectProcessInspectsList" resultType="java.util.Map">
        select process_inspect.id,
               order_number,
               material_code,
               material,
               specifications_model,
               techfather,
               techname,
               unit,
               quantity,
               DATE_FORMAT(process_inspect.create_time, '%Y-%m-%d') createTime,
               name,
               DATE_FORMAT(process_inspect.update_time, '%Y-%m-%d') updateTime,
               result
        from mom_ocean.process_inspect
                 left join mom_ocean.user on process_inspect.user_id = user.id
        where process_inspect.state = 1
        <if test="techfather!=null and techfather!=''">
            and techfather like  concat('%',#{techfather},'%')
        </if>
        <if test="material!=null and material!=''">
            and material like  concat('%',#{name},'%')
        </if>
        <if test="result!=null ">
            and result =#{result}
        </if>
    </select>
</mapper>
inspect-server/src/main/resources/mapper/RawInsProductMapper.xml
@@ -1,18 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.RawInsProductMapper">
    <!--根据原材料检验单id删除-->
    <update id="updaRawInsById">
        update mom_ocean.raw_ins_product
        set state=0
        where raw_inspect_id = #{id}
    </update>
    <!--根据原材料检验单id批量删除原材料检验项目-->
    <update id="delAllRawIns">
        update mom_ocean.raw_ins_product
        set state=0
        where raw_inspect_id in (${ids})
    </update>
    <!--根据原材料检验单id查询检验项目-->
    <select id="getresult" resultType="java.lang.Integer">
        select test_state
inspect-server/src/main/resources/mapper/RawInspectMapper.xml
@@ -3,12 +3,6 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.RawInspectMapper">
    <!--根据原材料检验单id批量删除-->
    <update id="delAllRawIns">
        update mom_ocean.raw_inspect
        set state=0
        where id in (${ids})
    </update>
    <select id="selCountRaw" resultType="java.lang.Integer">
        select count(id)
        from mom_ocean.raw_inspect
production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
@@ -18,5 +18,8 @@
    List<Map<String, Object>> seleDatil(Integer manOrdId);
    List<Map<String, Object>> selectListTowTree(Integer schedulingId);
    //根据生产订单查询所有(倒序)
    List<ManualTechnology> selAllByMoId(Integer id);
}
production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.ManualTechnologyMapper">
    <resultMap id="seleDatilMap" type="map">
        <id property="lable" column="techfather"/>
        <collection property="children" resultMap="seleDatilTowMap" javaType="List"/>
@@ -37,8 +36,13 @@
        <result property="period" column="period"/>
    </resultMap>
    <select id="selectListTowTree" resultMap="selectListTowTreeFirstMap">
        SELECT p.`id`, t.`techfather`, t.`techname`, d.`name`, DATE_FORMAT(p.`start_time`, '%Y-%m-%d') start_time,
               DATE_FORMAT(p.`end_time`, '%Y-%m-%d') end_time, p.`period`
        SELECT p.`id`,
               t.`techfather`,
               t.`techname`,
               d.`name`,
               DATE_FORMAT(p.`start_time`, '%Y-%m-%d') start_time,
               DATE_FORMAT(p.`end_time`, '%Y-%m-%d')   end_time,
               p.`period`
        FROM manufacture_order_process p
                 LEFT JOIN device d ON d.`id` = p.`device_id`
                 LEFT JOIN manual_technology t ON t.`id` = p.`manual_technology_id`
@@ -46,4 +50,13 @@
          AND p.`manufacture_scheduling_id` = #{schedulingId}
        ORDER BY p.`create_time` DESC
    </select>
    <!--根据生产订单id查询所有(倒序)-->
    <select id="selAllByMoId" resultType="com.yuanchu.mom.pojo.ManualTechnology">
        select *
        from mom_ocean.manual_technology
        where state = 1
          and manufacture_order_id = #{id}
        order by id desc
    </select>
</mapper>
standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java
@@ -29,11 +29,4 @@
    String addMaterial(MaterialDto materialDto);
    /**
     * æ£€éªŒæ¨¡å—-->QMS管理-->成品检验-->新增(项目名称下拉框:Id与名称,编码)
     */
    List<Map<String, Object>> selectMaterialIdAndNameAndCode();
}
standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
@@ -162,13 +162,6 @@
        return "添加物料【" + materialDto.getName() + "】成功";
    }
    //检验模块-->QMS管理-->成品检验-->新增(项目名称下拉框:Id与名称,编码)
    @Override
    public List<Map<String, Object>> selectMaterialIdAndNameAndCode() {
        LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
        wrapper.select(Material::getId, Material::getName, Material::getCode);
        return materialMapper.selectMaps(wrapper);
    }
}
system-run/src/main/resources/application-dev.yml
@@ -34,7 +34,7 @@
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.65.113:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    url: jdbc:mysql://192.168.218.113:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: user
    password: 123456
    druid:
@@ -59,7 +59,7 @@
    # redis数据库索引(默认为0),我们使用索引为3的数据库,避免和其他数据库冲突
    database: 0
    # redis服务器地址(默认为localhost)
    host: 192.168.65.113
    host: 192.168.218.113
    # redis端口(默认为6379)
    port: 6379
    # redis访问密码(默认为空)