XiaoRuby
2023-09-07 c28d3bb363dde2afb44c168b93379b2bf6b1f67f
Merge remote-tracking branch 'origin/master'

# Conflicts:
# inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
已添加8个文件
已修改49个文件
已删除4个文件
2398 ■■■■■ 文件已修改
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | 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 15 ●●●● 补丁 | 查看 | 原始文档 | 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 111 ●●●● 补丁 | 查看 | 原始文档 | 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 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java 47 ●●●● 补丁 | 查看 | 原始文档 | 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 377 ●●●●● 补丁 | 查看 | 原始文档 | 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 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | 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 | 历史
inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
production-server/src/main/resources/mapper/ManualTechnologyMapper.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/MaterialMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/ProductMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/TechniqueMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/TechnologyMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/service/UserService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
@@ -2,8 +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.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;
@@ -18,12 +21,11 @@
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
@@ -49,76 +51,62 @@
    @Autowired
    Jwt jwt;
    @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、新增过程检验单-->主机工下拉框")
    @GetMapping("/list_user")
    public Result<?> selectUserIdAndName(){
        List<Map<String, Object>> maps = userService.listUserIdAndName();
        return Result.success(maps);
    }
    @ApiOperation(value = "新增按钮-->1、新增过程检验单-->2、规格型号下拉框:根据项目ID查询")
    @ApiOperation(value = "新增成品检验单-->根据订单号选择产品信息和工艺")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "materialId",value = "项目名称ID",dataTypeClass  = Integer.class,required = true)
            @ApiImplicitParam(name = "orderNumber", value = "订单编号", dataTypeClass = String.class, required = true)
    })
    @GetMapping("/list_specification")
    public Result<?> selectSpecificationIdAndName(Integer materialId){
        List<Map<String, Object>> maps = specificationsService.selectSpecificationIdAndName(materialId);
        return Result.success(maps);
    @GetMapping("/chooseMater")
    public Result<?> chooseMater(String orderNumber) {
        return Result.success(finishedInspectService.chooseMater(orderNumber));
    }
    @ApiOperation(value = "新增按钮-->1、新增过程检验单-->1、项目名称下拉框")
    @GetMapping("/list_material")
    public Result<?> selectMaterialIdAndNameAndCode(){
        List<Map<String, Object>> maps = materialService.selectMaterialIdAndNameAndCode();
        return Result.success(maps);
    }
    @ApiOperation(value = "新增按钮-->3、检验结论")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "finishedInspectId",value = "检验单Id",dataTypeClass  = Integer.class,required = true),
            @ApiImplicitParam(name = "result",value = "检验结论",dataTypeClass  = Integer.class,required = true),
    })
    @PostMapping("/inspection_conclusion")
    public Result<?> inspectionConclusion(@RequestHeader("token") String token,Integer finishedInspectId, Integer result) 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);
        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(data.get("name").replaceAll("\"", ""),finishedInspectId, result);
        if (isInsertSuccess == 1){
            return Result.success("上报成功!");
        }
        return Result.fail("上报失败!");
        return Result.success(finishedInspectService.addProcessInspectionSheet(data.get("id").replaceAll("\"", ""), finishedInspectVo));
    }
    @ApiOperation(value = "4、主页分页")
    @ApiOperation(value = "上报(更新检验状态)")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @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("已经上报过了,不能再次上报!");
        }
        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 = "根据检验单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());
        return Result.success(map);
    }
    @ApiOperation(value = "4、主页分页-->主机工条件查询下拉框")
    @GetMapping("/page_user")
    public Result<?> selectPageUserIdAndName(){
        List<Map<String, Object>> maps = userService.listUserIdAndName();
        return Result.success(maps);
    }
}
inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java
@@ -27,6 +27,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,10 @@
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;
/**
@@ -18,11 +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);
    //新增检验单-->根据订单号选择产品信息
    List<Map<String, Object>> chooseMater(String orderNumber);
    //计算月产量
    Long seAllCount(String begin, String end, int type);
    //根据检验单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,102 +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;
    @NotBlank(message = "订单号不允许为空!")
    @ApiModelProperty(value = "订单号", required = true, example = "DDH202308010001")
    /**
     * è®¢å•号
     **/
    private String orderNumber;
    @NotBlank(message = "客户名称不允许为空!")
    @ApiModelProperty(value = "客户名称", required = true, example = "懒洋洋")
    /**
     * å®¢æˆ·åç§°
     **/
    private String customerName;
    @NotBlank(message = "工程名称不允许为空!")
    @ApiModelProperty(value = "工程名称", required = true, example = "液体硅橡胶")
    /**
     * å·¥ç¨‹åç§°
     **/
    private String projectName;
    @NotBlank(message = "质量追溯号不允许为空!")
    @ApiModelProperty(value = "质量追溯号", required = true, example = "ZLZSH202308010001")
    /**
     * è´¨é‡è¿½æº¯å·
     **/
    private String qualityTraceability;
    @ApiModelProperty(value = "0:成品;1:过程;", hidden = true)
    private Integer type;
    @NotBlank(message = "单位不允许为空!")
    @ApiModelProperty(value = "单位", required = true, example = "吨")
    /**
     * å•位
     **/
    private String unit;
    @NotNull(message = "请输入数量!")
    @ApiModelProperty(value = "数量", required = true, example = "50")
    /**
     * æ•°é‡
     **/
    private Integer quantity;
    @NotNull(message = "请选择规格型号!")
    @ApiModelProperty(value = "规格型号拼接字符", required = true, example = "8.7/15kV JLS-3.2")
    /**
     * è§„格型号
     **/
    private String specificationsModel;
    @NotNull(message = "请选择型号ID!")
    @TableField(exist = false)
    @ApiModelProperty(value = "型号ID", required = true, example = "1")
    private Integer specificationsId;
    @ApiModelProperty(value = "项目编码", required = true, example = "GX20230807")
    private String materialCode;
    @NotNull(message = "请选择项目名称!")
    @ApiModelProperty(value = "项目名称", required = true, example = "光纤")
    /**
     * ç‰©æ–™åç§°
     **/
    private String material;
    @NotNull(message = "请选择主机工!")
    @ApiModelProperty(value = "主机工:用户id", required = true, example = "1")
    /**
     * ç‰©æ–™ç¼–码
     **/
    private String materialCode;
    /**
     * æŠ¥æ£€äºº:用户id
     **/
    private Integer userId;
    @ApiModelProperty(value = "检验结论", hidden = true, required = true, example = "DDH202308010001")
    /**
     * æ£€éªŒç»“论;0:不合格;1:合格
     **/
    private Integer result;
    @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/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
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.mom.pojo.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
//新增过程检验参数
public class ProcessInspectVo {
    @NotBlank(message = "订单号不能为空!")
    private String orderNumber;
    @NotBlank(message = "产品不能为空!")
    private String material;
    @NotBlank(message = "产品编码不能为空!")
    private String materialCode;
    @NotBlank(message = "规格型号不能为空!")
    private String specificationsModel;
    @NotBlank(message = "单位不能为空!")
    private String unit;
    @NotBlank(message = "工序不能为空!")
    private String techfather;
    @NotBlank(message = "工艺不能为空!")
    private String techname;
    @NotNull(message = "数量不能为空!")
    private Integer quantity;
    @NotNull(message = "关联的工艺路线id不能为空!")
    private Integer technologyId;
}
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
@@ -2,15 +2,17 @@
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.FinishedInspect;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
@@ -18,10 +20,43 @@
 */
public interface FinishedInspectService extends IService<FinishedInspect> {
    @Transactional(rollbackFor = Exception.class)
    Integer addProcessInspectionSheet(FinishedInspect finishedInspect);
    /**
     * æ–°å¢žæ£€éªŒå•-->根据订单号选择产品信息
     *
     * @param orderNumber
     * @return
     */
    List<Map<String, Object>> chooseMater(String orderNumber);
    Integer inspectionConclusion(String username,Integer finishedInspectId, Integer result);
    /**
     * æ–°å¢žæˆå“æ£€éªŒå•
     *
     * @param finishedInspectVo
     * @return
     */
    Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo);
    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
    /**
     * ä¸ŠæŠ¥(更新检验状态)
     * @param id
     * @return
     */
    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,19 +3,14 @@
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.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.mapper.ImportRepertoryMapper;
import com.yuanchu.mom.mapper.InspectUnacceptedMapper;
import com.yuanchu.mom.mapper.RepertoryMapper;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.yuanchu.mom.mapper.FinishedInspectMapper;
import com.yuanchu.mom.pojo.ImportRepertory;
import com.yuanchu.mom.pojo.InspectUnaccepted;
import com.yuanchu.mom.pojo.Repertory;
import com.yuanchu.mom.service.FinishedInspectService;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
import com.yuanchu.mom.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.service.InspectionItemService;
import com.yuanchu.mom.service.ProductService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +18,8 @@
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * <p>
@@ -36,13 +33,28 @@
public class FinishedInspectServiceImpl extends ServiceImpl<FinishedInspectMapper, FinishedInspect> implements FinishedInspectService {
    @Resource
    private FinishedInspectMapper finishedInspectMapper;
    FinishedInspectMapper finishedInspectMapper;
    @Autowired
    private ProductService productService;
    @Resource
    MaterialMapper materialMapper;
    @Autowired
    private InspectionItemService inspectionItemService;
    @Resource
    StandardService standardService;
    @Resource
    SpecificationsService specificationsService;
    @Resource
    ManualTechnologyMapper manualTechnologyMapper;
    @Resource
    ProductService productService;
    @Resource
    InspectionItemService inspectionItemService;
    @Resource
    InspectionItemMapper inspectionItemMapper;
    @Resource
    InspectUnacceptedMapper inspectUnacceptedMapper;
@@ -50,162 +62,197 @@
    @Resource
    RepertoryMapper repertoryMapper;
    @Resource
    ImportRepertoryMapper importRepertoryMapper;
    //新增检验单-->根据订单号选择产品信息
    @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;
    public List<Map<String, Object>> chooseMater(String orderNumber) {
        return finishedInspectMapper.chooseMater(orderNumber);
    }
    //新增成品检验单
    @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;
    public Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo) {
        /*新增成品检验单*/
        FinishedInspect finishedInspect = new FinishedInspect();
        finishedInspect.setUserId(Integer.parseInt(userId));
        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(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(technologyId, ver);
        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
            InspectionItem inspectionItem = new InspectionItem();
            BeanUtils.copyProperties(product, inspectionItem);
            inspectionItem.setInspectId(finishedInspect.getId());
            inspectionItem.setType(2);//成品
            return inspectionItem;
        }).collect(Collectors.toList());
        inspectionItemService.saveBatch(inspectionItemList);
        return finishedInspect.getId();
    }
    //上报(更新检验状态)
    @Override
    public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername) {
        return finishedInspectMapper.selectFinishedInspectPage(page, inspectResult, inspectDate, inspectUsername);
    @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);
    }
    /*根据样品名称,样品编号,型号规格获取型号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/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,45 +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>
    <!--新增检验单-根据订单号选择产品信息-->
    <resultMap id="oneMap" type="map">
        <id property="prname" column="prname"/>
        <result property="sname" column="sname"/>
        <collection property="children" resultMap="twoMap" javaType="List"/>
    </resultMap>
    <resultMap id="twoMap" type="map">
        <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>
    <select id="chooseMater" resultMap="oneMap">
        select s.proname prname,
               s.name    sname,
               quality_traceability,
               m.code    mcode,
               mo.name   material,
               specifications,
               unit,
               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 m.type = 1
          and order_code = #{orderNumber}
    </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>
    <!--根据检验单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="selectInsList" resultType="java.util.Map">
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
inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
import com.yuanchu.mom.pojo.vo.SaleVo;
import com.yuanchu.mom.service.RepertoryService;
import com.yuanchu.mom.utils.JackSonUtil;
@@ -40,8 +41,6 @@
    @Resource
    Jwt jwt;
    @Resource
    RepertoryService repertoryService;
    @ApiOperation(value = "查询销售单列表")
    @ApiImplicitParams(value = {
@@ -63,9 +62,21 @@
    @ApiOperation(value = "新增销售单")
    @PostMapping("/addSale")
    public Result addSale(@RequestHeader("token") String token,@Validated @RequestBody SaleDto saleDto) throws Exception {
            Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
            saleService.addSale(data.get("name").replaceAll("\"", ""), saleDto);
    public Result addSale(@RequestHeader("token") String token, @Validated @RequestBody SaleDto saleDto) throws Exception {
        //校验,同一个产品的规格型号不能相同
        List<SaleMaterialDto> saleMaterialList = saleDto.getSaleMaterialList();
        // ä½¿ç”¨å“ˆå¸Œé›†åˆæ¥åˆ¤æ–­æ˜¯å¦å­˜åœ¨ç›¸åŒå­—段值组合
        Set<String> seen = new HashSet<>();
        for (SaleMaterialDto saleMaterial: saleMaterialList) {
            String key = saleMaterial.getName() + "," + saleMaterial.getSpecifications();
            if (seen.contains(key)) {
                return Result.fail("同一个产品的规格型号不能相同");
            } else {
                seen.add(key);
            }
        }
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        saleService.addSale(data.get("name").replaceAll("\"", ""), saleDto);
        return Result.success("新增成功!");
    }
@@ -84,10 +95,10 @@
            @ApiImplicitParam(name = "id", value = "json格式的销售单内容", dataTypeClass = Json.class, required = true)
    })
    @PostMapping("/updateSaleById")
    public Result updateSaleById(@RequestHeader("token") String token,Integer id, String str) throws Exception {
    public Result updateSaleById(@RequestHeader("token") String token, Integer id, String str) throws Exception {
        SaleVo saleVo = JackSonUtil.unmarshal(str, SaleVo.class);
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        saleService.updateSaleById(data.get("name").replaceAll("\"", ""),id, saleVo);
        saleService.updateSaleById(data.get("name").replaceAll("\"", ""), id, saleVo);
        return Result.success("修改成功!");
    }
@@ -103,10 +114,10 @@
    @ApiOperation(value = "批量删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List",required = true)
            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true)
    })
    @PostMapping("/delAllSale")
    public Result delAllSale( @RequestParam("ids") List<Integer> ids) {
    public Result delAllSale(@RequestParam("ids") List<Integer> ids) {
        saleService.delAllSale(ids);
        return Result.success();
    }
@@ -117,9 +128,9 @@
            @ApiImplicitParam(name = "type", value = "状态", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/check")
    public Result check(@RequestHeader("token") String token,Integer id,Integer type) throws Exception {
    public Result check(@RequestHeader("token") String token, Integer id, Integer type) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        saleService.check(data.get("name").replaceAll("\"", ""),id,type);
        saleService.check(data.get("name").replaceAll("\"", ""), id, type);
        return Result.success("审核成功");
    }
inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
@@ -6,12 +6,16 @@
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.OrdersService;
import com.yuanchu.mom.service.SpecificationsService;
import com.yuanchu.mom.service.StandardService;
import com.yuanchu.mom.utils.MyUtil;
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;
/**
 * è®¢å•(Order)表服务实现类
@@ -20,10 +24,19 @@
 * @since 2023-07-31 11:57:44
 */
@Service("orderService")
public class OrdersServiceImpl  implements OrdersService {
public class OrdersServiceImpl implements OrdersService {
    @Resource
    SaleMapper saleMapper;
    @Resource
    MaterialMapper materialMapper;
    @Resource
    StandardService standardService;
    @Resource
    SpecificationsService specificationsService;
    @Resource
    SaleMaterialMapper saleMaterialMapper;
@@ -41,11 +54,10 @@
    TechnologyMapper technologyMapper;
    //查询所有订单列表
    @Override
    public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type , String time) {
        return saleMapper.selectAllOrder(page, orderCode,name,type, time);
    public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type, String time) {
        return saleMapper.selectAllOrder(page, orderCode, name, type, time);
    }
    //编制订单BOM
@@ -75,10 +87,16 @@
                .build();
        //新增生产订单
        manufactureOrderMapper.insert(manufactureOrder);
        //查询产品的工序
        String[] split = manufactureOrder.getSpecifications().split("-");
        Specifications specifications = specificationsMapper.selectOne(Wrappers.<Specifications>query().eq("name", split[1]));
        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query().eq("specifications_id", specifications.getId()));
        //查询产品的最新工序
        //产品编码
        String code = materialMapper.selMcode(manufactureOrder.getName());
        //型号id
        Integer specificationId = getSpecificationId(manufactureOrder.getName(), code, manufactureOrder.getSpecifications());
        //默认最新版本
        Integer version = technologyMapper.selectVerByTec(specificationId).get(0);
        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query()
                .eq("specifications_id", specificationId)
                .eq("version", version));
        for (Technology technology : technologyList) {
            ManualTechnology manualTechnology = ManualTechnology.builder()
                    .techname(technology.getName())
@@ -86,11 +104,36 @@
                    .deviceGroup(technology.getDeviceGroup())
                    .manufactureOrderId(manufactureOrder.getId())
                    .productionQuota(technology.getProductionQuota())
                    .technologyId(technology.getId())
                    .build();
            //新增编制工序表
            manualTechnologyMapper.insert(manualTechnology);
        }
    }
    /*根据样品名称,样品编号,型号规格获取型号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();
    }
}
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/java/com/yuanchu/mom/pojo/ManualTechnology.java
@@ -55,6 +55,11 @@
     **/
    private Integer manufactureOrderId;
    /**
     * å…³è” æ ‡å‡†BOM工艺路线id
     **/
    private Integer technologyId;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
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/controller/MaterialController.java
@@ -42,8 +42,7 @@
    @ApiOperation("(1,2级)新增-->物料,标准,型号")
    @PostMapping("/add")
    public Result<?> addMaterial(@Validated @RequestBody MaterialDto materialDto) {
        materialService.addMaterial(materialDto);
        return Result.success("添加物料【" + materialDto.getName() + "】成功");
        return Result.success(materialService.addMaterial(materialDto));
    }
    @ApiOperation(value = "右侧数据展示-->选择版本")
standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java
@@ -29,8 +29,7 @@
    @ApiOperation("(4级)新增-->型号")
    @PostMapping("/add")
    public Result<?> addSpecifications(@Validated @RequestBody SpecificationsDto specificationsDto) {
        specificationsService.addSpecifications(specificationsDto);
        return Result.fail("添加型号【"+ specificationsDto.getSpecifications() +"】成功!");
        return Result.success(specificationsService.addSpecifications(specificationsDto));
    }
}
standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java
@@ -29,8 +29,7 @@
    @ApiOperation("(3级)新增-->标准,型号")
    @PostMapping("/add")
    public Result<?> addStandard(@Validated @RequestBody StandardDto standardDto) {
        standardService.addStandard(standardDto);
        return Result.fail("添加标准【"+ standardDto.getStandard() +"】成功!");
        return Result.success(standardService.addStandard(standardDto));
    }
}
standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java
@@ -21,6 +21,9 @@
    //根据标准id查询物料
    Material selFath(Integer id);
    //根据物料名称查询成品产品编号
    String selMcode(String name);
}
standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java
@@ -38,6 +38,9 @@
    //根据技术指标id批量删除
    void delAllPro(String ids);
    //查询标准BOM技术指标中该型号工艺下最新版本的检验项目
    List<Product> selProByVerSpe(Integer technologyId, Integer ver);
}
standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java
@@ -37,5 +37,11 @@
    //根据生产工艺id批量删除
    void delAllTeq(String ids);
    //根据工艺路线id查询所有版本
    List<Integer> selectVerByTeId(Integer technologyId);
    //查询该工艺下最新版本在一个检验项目下可以使用哪些设备
    List<Map<String, Object>> selDevByVerTecIdFaNam(Integer technologyId, String father, String name, Integer ver);
}
standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java
@@ -30,4 +30,7 @@
    //批量删除
    void delAllTech(String ids);
    //查询该型号工艺下最新版本的工艺id
    Integer selTech(String techfather, String techname, Integer version, Integer specificationId);
}
standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java
@@ -26,14 +26,7 @@
     * @param materialDto
     * @return
     */
    void addMaterial(MaterialDto materialDto);
    /**
     * æ£€éªŒæ¨¡å—-->QMS管理-->成品检验-->新增(项目名称下拉框:Id与名称,编码)
     */
    List<Map<String, Object>> selectMaterialIdAndNameAndCode();
    String addMaterial(MaterialDto materialDto);
}
standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java
@@ -84,4 +84,12 @@
     * @param ids
     */
    void delAllPro(String ids);
    /**
     * æŸ¥è¯¢æ ‡å‡†BOM技术指标中该型号工艺下最新版本的检验项目
     * @param technologyId
     * @param ver
     * @return
     */
    List<Product> selProByVerSpe(Integer technologyId, Integer ver);
}
standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java
@@ -28,6 +28,6 @@
     *   (4级)新增-->型号
     * @param specificationsDto
     */
    void addSpecifications(SpecificationsDto specificationsDto);
    String addSpecifications(SpecificationsDto specificationsDto);
}
standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java
@@ -15,5 +15,5 @@
     * (3级)新增-->标准,型号
     * @param standardDto
     */
    void addStandard(StandardDto standardDto);
    String addStandard(StandardDto standardDto);
}
standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
@@ -70,7 +70,13 @@
    //(1,2级)新增-->物料,标准,型号
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addMaterial(MaterialDto materialDto) {
    public String addMaterial(MaterialDto materialDto) {
        //校验添加物料是否重复
        if (materialMapper.selectOne(Wrappers.<Material>query()
                .eq("type", materialDto.getType())
                .eq("father", materialDto.getFather())).getName().equals(materialDto.getName())) {
            return "该类型产品大类下有该产品名称";
        }
        /*新增物料表*/
        Material material = new Material();
        material.setCode(MyUtil.getTimeSixNumberCode("ML", "ML"));
@@ -153,15 +159,9 @@
            }
        }
        techniqueService.saveBatch(techniqueList);
        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);
    }
}
standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
@@ -105,6 +105,12 @@
    public void delAllPro(String ids) {
        productMapper.delAllPro(ids);
    }
    //查询标准BOM技术指标中该型号工艺下最新版本的检验项目
    @Override
    public List<Product> selProByVerSpe(Integer technologyId, Integer ver) {
        return productMapper.selProByVerSpe(technologyId,ver);
    }
}
standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java
@@ -62,7 +62,15 @@
    //(4级)新增-->型号
    @Override
    public void addSpecifications(SpecificationsDto specificationsDto) {
    public String addSpecifications(SpecificationsDto specificationsDto) {
        //校验添加该标准下的型号是否重复
        List<String> specificationsNameList = specificationsMapper.selectList(Wrappers.<Specifications>query().eq("standard_id", specificationsDto.getId())).stream().map(specifications -> {
            String specificationsName = specifications.getName();
            return specificationsName;
        }).collect(Collectors.toList());
        if (specificationsNameList.contains(specificationsDto.getSpecifications())){
            return "该标准下有该型号";
        }
        /*新增型号表*/
        Specifications specifications = new Specifications();
        specifications.setStandardId(specificationsDto.getId());
@@ -135,6 +143,7 @@
            }
        }
        techniqueService.saveBatch(techniqueList);
        return "添加型号【"+ specificationsDto.getSpecifications() +"】成功!";
    }
    /**
standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java
@@ -61,7 +61,15 @@
    //(3级)新增-->标准,型号
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addStandard(StandardDto standardDto) {
    public String addStandard(StandardDto standardDto) {
        //校验添加该物料下的标准是否重复
        List<String> standNameList = standardMapper.selectList(Wrappers.<Standard>query().eq("material_id", standardDto.getId())).stream().map(standard -> {
            String standardName = standard.getName();
            return standardName;
        }).collect(Collectors.toList());
        if (standNameList.contains(standardDto.getStandard())){
            return "该产品下有该标准";
        }
        /*新增标准表*/
        Standard standard = new Standard();
        standard.setMaterial_id(standardDto.getId());
@@ -139,6 +147,7 @@
            }
        }
        techniqueService.saveBatch(techniqueList);
        return "添加标准【"+ standardDto.getStandard() +"】成功!";
    }
}
standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -52,4 +52,12 @@
                    where standard.state = 1
                      and standard.id = #{id})
    </select>
    <!--根据物料名称查询成品产品编号-->
    <select id="selMcode" resultType="java.lang.String">
        select code
        from mom_ocean.material
        where state = 1
          and type = 1
          and name = #{name}
    </select>
</mapper>
standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -88,6 +88,14 @@
                                where technology.state = 1
                                  and specifications_id = #{specificationsId})
    </select>
    <!--查询标准BOM技术指标中该型号工艺下最新版本的检验项目-->
    <select id="selProByVerSpe" resultType="com.yuanchu.mom.pojo.Product">
        select *
        from mom_ocean.product
        where state = 1
          and version = #{ver}
          and technology_id = #{technologyId}
    </select>
    <!--根据工艺路线id删除-->
    <update id="delProByTecId">
standard-server/src/main/resources/mapper/TechniqueMapper.xml
@@ -88,6 +88,25 @@
                                where technology.state = 1
                                  and specifications_id = #{specificationsId})
    </select>
    <!--根据工艺路线id查询所有版本-->
    <select id="selectVerByTeId" resultType="java.lang.Integer">
        select distinct version
        from mom_ocean.technique
        where state = 1
          and technology_id = #{technologyId}
    </select>
    <!--查询该工艺下最新版本在一个检验项目下可以使用哪些设备-->
    <select id="selDevByVerTecIdFaNam" resultType="java.util.Map">
        select device.id, device
        from mom_ocean.technique
                 left join mom_ocean.device on name = device
        where technique.state = 1
          and technology_id = #{technologyId}
          and product_father = #{father}
          and product = #{name}
          and version = #{ver}
    </select>
    <!--根据工艺路线id删除生产工艺-->
    <update id="delTeqByTecId">
standard-server/src/main/resources/mapper/TechnologyMapper.xml
@@ -61,6 +61,16 @@
        where state = 1
          and specifications_id = #{specificationsId}
    </select>
    <!--查询该型号工艺下最新版本的工艺id-->
    <select id="selTech" resultType="java.lang.Integer">
        select id
        from mom_ocean.technology
        where state = 1
          and father = #{techfather}
          and name = #{techname}
          and specifications_id = #{specificationId}
          and version = #{version}
    </select>
    <!--批量删除-->
    <update id="delAllTech">
user-server/src/main/java/com/yuanchu/mom/service/UserService.java
@@ -10,8 +10,7 @@
    /*判断是否登录成功*/
    User selectUserByPwd(String account, String password);
    //根据用户id查询用户名
    String selectNameById(Integer id);
    /**
     * æ£€éªŒæ¨¡å—-->QMS管理-->成品检验-->新增(需要用户Id与名称)
user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
@@ -26,13 +26,6 @@
        return list.size()>0?list.get(0):null;
    }
    //根据用户id查询用户名
    @Override
    public String selectNameById(Integer id) {
        User user = userMapper.selectById(id);
        return user.getName();
    }
    @Override
    public List<Map<String, Object>> listUserIdAndName() {
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();