deslrey
14 小时以前 6f507a2a6ff037346b052b2b7ce96ab2910c9735
外购订单的标签打印功能查询接口及查询
已添加1个文件
已修改5个文件
295 ■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/dto/InventoryDetailDTO.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/InventoryDetailDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.ruoyi.basic.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class InventoryDetailDTO {
    // æ¥è‡ª ifs_inventory_quantity
    @ApiModelProperty(value = "ifs_inventory_quantityID")
    private Integer id;
    @ApiModelProperty(value = "零件描述")
    private String partDesc;
    @ApiModelProperty(value = "SN号")
    private String lotBatchNo;
    @ApiModelProperty(value = "零件号")
    private String partNo;
    // æ¥è‡ª ifs_part_props_record
    @ApiModelProperty(value = "绝缘颜色")
    private String insulationColor;
    @ApiModelProperty(value = "护套颜色")
    private String outerColor;
    @ApiModelProperty(value = "载具编号")
    private String drumNo;
    @ApiModelProperty(value = "起始米标")
    private String startMeterMark;
    @ApiModelProperty(value = "截止米标")
    private String endMeterMark;
    // æ¥è‡ª ins_order
    @ApiModelProperty(value = "入库时间")
    private Date updateTime;
    @ApiModelProperty(value = "检测结论")
    private Integer insState;
    // é€»è¾‘计算字段:检验人 (COALESCE åŽçš„结果)
    @ApiModelProperty(value = "检测人员")
    private String inspectorName;
}
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -1,15 +1,12 @@
package com.ruoyi.inspect.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.InventoryDetailDTO;
import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
import com.ruoyi.basic.pojo.StandardProductList;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.*;
import com.ruoyi.inspect.pojo.InsOrder;
@@ -26,13 +23,10 @@
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
@@ -43,7 +37,7 @@
@RestController
@AllArgsConstructor
@RequestMapping("/insOrder")
@Api(tags="检验单模块")
@Api(tags = "检验单模块")
public class InsOrderController {
    private InsOrderService insOrderService;
@@ -73,8 +67,8 @@
    @ApiOperation(value = "检验分配")
    @PostMapping("/upInsOrder")
    public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) {
        return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId,sonLaboratory));
    public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory) {
        return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId, sonLaboratory));
    }
    @ApiOperation(value = "添加检验下单数据")
@@ -133,7 +127,7 @@
    @ApiOperation(value = "通过检验单查询检验数据(数据查看)")
    @GetMapping("/selectSampleAndProductByOrderId")
    public Result<?> selectSampleAndProductByOrderId(Page page, SampleProductDto2 sampleProductDto){
    public Result<?> selectSampleAndProductByOrderId(Page page, SampleProductDto2 sampleProductDto) {
        return Result.success(insOrderService.selectSampleAndProductByOrderId(page, sampleProductDto));
    }
@@ -148,34 +142,34 @@
    //待检的撤销的查询待检项目
    @GetMapping("/selectNoProducts")
    public Result<?> selectNoProducts(Page page, InsProduct insProduct,Integer orderId ,String ids){
        return Result.success(insProductService.selectNoProducts(page, insProduct,orderId,ids));
    public Result<?> selectNoProducts(Page page, InsProduct insProduct, Integer orderId, String ids) {
        return Result.success(insProductService.selectNoProducts(page, insProduct, orderId, ids));
    }
    @ApiOperation(value = "待检的撤销")
    @PostMapping("/updateInspected")
    public Result<?> updateInspected(@RequestBody Map<String, Object> param){
    public Result<?> updateInspected(@RequestBody Map<String, Object> param) {
        Integer orderId = (Integer) param.get("orderId");
        String ids = (String) param.get("ids");
        Integer typeSource = (Integer) param.get("typeSource");
        Long ifsInventoryId = Long.parseLong(param.get("ifsInventoryId").toString());
        if(Objects.nonNull(typeSource) && typeSource == 1){
            ifsInventoryQuantityMapper.update(null,new LambdaUpdateWrapper<IfsInventoryQuantity>()
                    .set(IfsInventoryQuantity::getState,0)
                    .eq(IfsInventoryQuantity::getId,ifsInventoryId));
            insOrderService.update(null,new LambdaUpdateWrapper<InsOrder>().set(InsOrder::getState,-1).eq(InsOrder::getId,orderId)); // æ’¤é”€
        if (Objects.nonNull(typeSource) && typeSource == 1) {
            ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
                    .set(IfsInventoryQuantity::getState, 0)
                    .eq(IfsInventoryQuantity::getId, ifsInventoryId));
            insOrderService.update(null, new LambdaUpdateWrapper<InsOrder>().set(InsOrder::getState, -1).eq(InsOrder::getId, orderId)); // æ’¤é”€
        }
        insProductService.updateInspected(orderId,ids);
        insProductService.updateInspected(orderId, ids);
        return Result.success();
    }
    @ApiOperation(value = "审核待检撤销")
    @PostMapping("/checkUpdate")
    public Result<?> checkUpdate(@RequestBody Map<String, Object> param){
    public Result<?> checkUpdate(@RequestBody Map<String, Object> param) {
        Integer orderId = (Integer) param.get("orderId");
        Integer state = (Integer) param.get("state");
        insProductService.checkUpdate(orderId,state);
        insProductService.checkUpdate(orderId, state);
        return Result.success();
    }
@@ -184,9 +178,9 @@
    @GetMapping("/getIfsOrder")
    public Result<?> getIfsOrder() {
        HashMap<String, Object> map = new HashMap<>();
        map.put("LOCATION_NO","1302;WG-04-001");
        map.put("STATE_DB","To be Inspected");
        insOrderService.getIfsOrder(map,false);
        map.put("LOCATION_NO", "1302;WG-04-001");
        map.put("STATE_DB", "To be Inspected");
        insOrderService.getIfsOrder(map, false);
        return Result.success();
    }
@@ -236,6 +230,13 @@
        return Result.success(insOrderService.labelOrderPrinting(ids));
    }
    @ApiOperation(value = "外购下单成品标签打印")
    @PostMapping("/labelOutsideOrderPrinting")
    public Result<List<InventoryDetailDTO>> labelOutsideOrderPrinting(@RequestBody Map<String, Object> param) {
        List<Integer> ids = (List<Integer>) param.get("ids");
        return Result.success(insOrderService.labelOutsideOrderPrinting(ids));
    }
    @ApiOperation(value = "根据订单id查询样品")
    @GetMapping("/getSampleByOrderId")
    public Result<List<InsSample>> getSampleByOrderId(Integer insOrderId) {
@@ -257,8 +258,8 @@
    @ApiOperation(value = "成品检验单全部信息导出")
    @GetMapping("/rawAllInsOrderExport")
    public void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response){
        insOrderService.rawAllInsOrderExport(sampleOrderDto,response);
    public void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response) {
        insOrderService.rawAllInsOrderExport(sampleOrderDto, response);
    }
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.IfsInventoryQuantityDto;
import com.ruoyi.basic.dto.InventoryDetailDTO;
import com.ruoyi.basic.pojo.StructureTestObject;
import com.ruoyi.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.dto.SampleProductDto2;
@@ -37,6 +39,7 @@
    IPage<SampleProductDto2> selectSampleAndProductByOrderId(@Param("page") IPage<SampleProductDto2> page, @Param("ew") QueryWrapper<SampleProductDto2> ew, @Param("id") Integer id);
    List<Map<String, String>> selectDeviceList(@Param("managementNumbers") Set<String> managementNumbers);
    List<SampleDefectsFatherVo> selectSampleDefects(Page page, @Param("inspectionItems") String inspectionItems, @Param("orderNumber") String orderNumber);
    String getStandardMethodCode(@Param("id") Integer id);
@@ -51,6 +54,7 @@
    /**
     * æŸ¥è¯¢æ£€éªŒç»“æžœ
     *
     * @param ids
     * @return
     */
@@ -58,6 +62,7 @@
    /**
     * èŽ·å–æ‰¹é‡æ£€éªŒçš„æ€»æ•°
     *
     * @param id
     * @return
     */
@@ -65,13 +70,13 @@
    /**
     * èŽ·å–çº¿èŠ¯é¢œè‰²
     *
     * @param id
     * @return
     */
    List<String> selectSampleCableTag(@Param("id") Integer id);
    /**
     *
     * @param orderId
     * @return
     */
@@ -79,6 +84,7 @@
    /**
     * åªæŸ¥è¯¢é»˜è®¤ç¬¬ä¸€ä¸ªçš„产品
     *
     * @param id
     * @return
     */
@@ -86,20 +92,19 @@
    /**
     * æŸ¥è¯¢æ—¥åކ图
     *
     * @param
     * @return
     */
    List<Map<String, Object>> selectCalendarWorkByWeek(@Param("day") Integer day);
    /**
     *
     * @param partNo
     * @return
     */
    StructureTestObject selectProductByPartNo(@Param("partNo") String partNo);
    /**
     *
     * @param partNo
     * @return
     */
@@ -107,19 +112,24 @@
    /**
     * æˆå“æ ‡ç­¾æ‰“印
     *
     * @param ids
     * @return
     */
    List<InsOrderPrintingVo> labelOrderPrinting(@Param("ids") List<Integer> ids);
    List<InventoryDetailDTO> labelOutsideOrderPrinting(@Param("ids") List<Integer> ids);
    /**
     * æŸ¥è¯¢å¯¼å‡ºä¿¡æ¯
     *
     * @return
     */
    List<SampleOrderDto> rawAllInsOrderExport(@Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory, @Param("isOrderAll") String isOrderAll);
    /**
     * æ ¹æ®è®¢å•查询试验室
     *
     * @param insOrderId
     * @return
     */
@@ -127,6 +137,7 @@
    /**
     * æŸ¥è¯¢è®¢å•信息
     *
     * @param insSampleId
     * @return
     */
@@ -134,6 +145,7 @@
    /**
     * æ ¹æ®è®¢å•id查询订单导出信息
     *
     * @param orderIds
     * @return
     */
@@ -141,6 +153,7 @@
    /**
     * æŸ¥è¯¢å½“前时间是否有该检测项的抽样计划订单
     *
     * @param itmeId    æ ·å“Id
     * @param startTime å¼€å§‹æ—¶é—´
     * @param endTime   ç»“束时间
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.dto.IfsInventoryQuantityDto;
import com.ruoyi.basic.dto.InventoryDetailDTO;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
import com.ruoyi.basic.pojo.StandardProductList;
import com.ruoyi.common.core.domain.Result;
@@ -30,7 +32,7 @@
    //修改检验下单数据
    int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId,String sonLaboratory);
    int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory);
    int addInsOrder(List<SampleProductDto> list, InsOrder insOrder);
@@ -47,10 +49,11 @@
    // èŽ·å–ifs库存信息
    void getIfsOrder(Map<String,Object> objectMap,Boolean isSplitOrder);
    void getIfsOrder(Map<String, Object> objectMap, Boolean isSplitOrder);
    /**
     * ä¿®æ”¹è®¢å•单号
     *
     * @param insOrder
     */
    void updateEntrustCode(InsOrder insOrder);
@@ -58,11 +61,11 @@
    List<InsUnqualifiedRetestProduct> getRetestResult(Integer insProductId);
    void updateIfsInventoryQuantity(Long id);
    /**
     * é“œæä¸‹å•
     *
     * @param list
     * @param copperInsOrder
     * @return
@@ -71,6 +74,7 @@
    /**
     * ä¿®æ”¹å§”托编号
     *
     * @param insOrder
     */
    void updateOrderEntrustCode(InsOrder insOrder);
@@ -78,6 +82,7 @@
    /**
     * ä¿®æ”¹æ£€éªŒä¸‹å•内容
     *
     * @param insOrderUpdateDto
     * @return
     */
@@ -85,13 +90,17 @@
    /**
     * æˆå“æ ‡ç­¾æ‰“印
     *
     * @param ids
     * @return
     */
    List<InsOrderPrintingVo> labelOrderPrinting(List<Integer> ids);
    List<InventoryDetailDTO> labelOutsideOrderPrinting(List<Integer> ids);
    /**
     * æ ¹æ®æ ·å“id查询检验项树
     *
     * @param insSampleId
     * @return
     */
@@ -99,6 +108,7 @@
    /**
     * æ·»åŠ é—æ¼çš„æ£€éªŒé¡¹
     *
     * @param omitOrderProductDto
     * @return
     */
@@ -106,6 +116,7 @@
    /**
     * æˆå“æ£€éªŒå•导出
     *
     * @param sampleOrderDto
     * @param response
     */
@@ -113,12 +124,14 @@
    /**
     * ä¿®æ”¹æ ·å“åž‹å·
     *
     * @param insSample
     */
    void updateSampleModel(InsSample insSample);
    /**
     * æŸ¥è¯¢å½“前时间是否没有该检测项的抽样计划
     *
     * @param sampleList
     * @param insOrder
     * @return
@@ -128,6 +141,7 @@
    /**
     * ç§»åº“操作
     *
     * @param one
     * @return
     */
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -16,6 +16,8 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.IfsInventoryQuantityDto;
import com.ruoyi.basic.dto.InventoryDetailDTO;
import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
import com.ruoyi.basic.mapper.StandardProductListMapper;
import com.ruoyi.basic.mapper.StructureItemParameterMapper;
@@ -89,7 +91,6 @@
    private StructureItemParameterMapper structureItemParameterMapper;
    //获取检验下单数据
    @Override
    public IPage<SampleOrderDto> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
@@ -150,7 +151,7 @@
        // åˆ¤æ–­è®¢å•有没有绑定抽样计划
        InsOrder order = insOrderMapper.selectById(orderId);
        if (order.getQuarterItemId() != null) {
           // éœ€è¦æ·»åŠ ä¸‹å‘æ—¶é—´åˆ°æŠ½æ ·æ—¶é—´, å–样人员就是检测人
            // éœ€è¦æ·»åŠ ä¸‹å‘æ—¶é—´åˆ°æŠ½æ ·æ—¶é—´, å–样人员就是检测人
            SpotCheckQuarterItem spotCheckQuarterItem = spotCheckQuarterItemMapper.selectById(order.getQuarterItemId());
            spotCheckQuarterItem.setSpotCheckTime(order.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            User user = userMapper.selectById(userId);
@@ -218,7 +219,7 @@
        if (insOrder.getQuarterItemId() != null) {
            Long quarterItemCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
                    .eq(InsOrder::getQuarterItemId, insOrder.getQuarterItemId())
                    .notIn(InsOrder::getState, -1 ,2 ,3));
                    .notIn(InsOrder::getState, -1, 2, 3));
            if (quarterItemCount > 0) {
                throw new ErrorException("该抽样计划已被绑定过");
            }
@@ -314,13 +315,13 @@
        });
        //原材料下单或外购成品下单
        if (Objects.nonNull(insOrder.getTypeSource())&&Objects.nonNull(insOrder.getIfsInventoryId())) {
        if (Objects.nonNull(insOrder.getTypeSource()) && Objects.nonNull(insOrder.getIfsInventoryId())) {
            // å§”托人就是报检人, ç”Ÿäº§å•位就是供应商单位
            IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
            Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
            User user = userMapper.selectById(declareUserId);
            if (user == null) {
               throw new ErrorException("缺少报检人信息");
                throw new ErrorException("缺少报检人信息");
            }
            // ä¾›åº”商名称
            insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
@@ -353,11 +354,11 @@
            upInsOrderOfState(insOrder);
            // åˆ†é…æ£€éªŒäºº
            String sonLaboratory = insOrder.getTypeSource().equals(1)?"原材料":"成品实验室";
            String sonLaboratory = insOrder.getTypeSource().equals(1) ? "原材料" : "成品实验室";
            upInsOrder(insOrder.getId(), null, appointed != null ? appointed.toString() : null, SecurityUtils.getUserId().intValue(), sonLaboratory);
            //是否为原材料下单
            if(insOrder.getTypeSource().equals(1)){
            if (insOrder.getTypeSource().equals(1)) {
                // æ ¹æ®é›¶ä»¶å·åˆ¤æ–­æ˜¯å¦æ˜¯è¾…材
                boolean isRaw = false;
                StructureTestObject productObject = insOrderMapper.selectProductByPartNo(ifsInventoryQuantity.getPartNo());
@@ -365,7 +366,7 @@
                if (productObject != null && StrUtil.isNotBlank(productObject.getObjectType()) && productObject.getObjectType().equals("1")) {
                    isRaw = true;
                } else {
                // æŸ¥è¯¢å¯¹è±¡
                    // æŸ¥è¯¢å¯¹è±¡
                    StructureTestObject testObject = insOrderMapper.selectByPartNo(ifsInventoryQuantity.getPartNo());
                    if (testObject != null && StrUtil.isNotBlank(testObject.getObjectType()) && testObject.getObjectType().equals("1")) {
                        isRaw = true;
@@ -392,7 +393,7 @@
                            startOfNextQuarter,
                            endOfQuarter);
                    if(count == 0) {
                    if (count == 0) {
                        ifsInventoryQuantity.setIsFirst(1);
                        ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                                .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId())
@@ -406,6 +407,7 @@
    /**
     * æ·»åŠ æ£€éªŒé¡¹
     *
     * @param sampleId
     * @param productList
     */
@@ -453,6 +455,7 @@
    /**
     * å®¡æ ¸æ£€éªŒå•
     *
     * @param insOrder
     * @return
     */
@@ -482,7 +485,7 @@
                    InsOrder::getEntrustCode);
            // åˆ¤æ–­æ˜¯å¦æ˜¯å­£åº¦æ£€éªŒ, æ˜¯å­£åº¦æ£€éªŒå–消原材料季度检验下单
            if (InsOrderTypeConstants.QUARTERLY_TEST.equals(order.getOrderType())) {
                ifsInventoryQuantityMapper.update(null,  Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                        .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())
                        .set(IfsInventoryQuantity::getIsQuarter, 0));
@@ -492,7 +495,7 @@
                        .ne(InsOrder::getState, -1)
                        .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY));
                if (order1 != null) {
                  no = order1.getEntrustCode();
                    no = order1.getEntrustCode();
                }
            }
@@ -552,13 +555,14 @@
    /**
     * èŽ·å–ifs库存信息
     *
     * @param
     * @return
     */
    @Override
    public void getIfsOrder(Map<String, Object> map,Boolean isSplitOrder) {
    public void getIfsOrder(Map<String, Object> map, Boolean isSplitOrder) {
        List<Map<String, Object>> inventory = ifsApiUtils.getInventory(JSONUtil.toJsonStr(map));
        if(inventory.isEmpty()) {
        if (inventory.isEmpty()) {
            return;
        }
        // è¿›è¡Œä¿å­˜
@@ -566,7 +570,7 @@
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // æ—¶é—´æ ¼å¼åŒ–
            IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity();
            ifsInventoryQuantity.setContract(map1.get("CONTRACT") == null ? "" : map1.get("CONTRACT").toString()); // åŸŸ
            ifsInventoryQuantity.setPartNo(map1.get("PART_NO") == null ? "" : map1.get("PART_NO").toString() ); // é›¶ä»¶å·
            ifsInventoryQuantity.setPartNo(map1.get("PART_NO") == null ? "" : map1.get("PART_NO").toString()); // é›¶ä»¶å·
            ifsInventoryQuantity.setPartDesc(map1.get("PART_DESC") == null ? "" : map1.get("PART_DESC").toString()); // é›¶ä»¶æè¿°
            ifsInventoryQuantity.setOrderNo(map1.get("ORDER_NO") == null ? "" : map1.get("ORDER_NO").toString()); // è®¢å•号
            ifsInventoryQuantity.setLineNo(map1.get("LINE_NO") == null ? "" : map1.get("LINE_NO").toString()); // è¡Œå·
@@ -574,20 +578,20 @@
            ifsInventoryQuantity.setReceiptNo(Integer.parseInt(map1.get("RECEIPT_NO") == null ? "" : map1.get("RECEIPT_NO").toString())); // æŽ¥æ”¶å·
            ifsInventoryQuantity.setStatus(map1.get("STATE") == null ? "" : map1.get("STATE").toString()); // çŠ¶æ€æè¿°
            ifsInventoryQuantity.setStatusDb(map1.get("STATE_DB") == null ? "" : map1.get("STATE_DB").toString()); // çŠ¶æ€
            if(map1.get("QTY_ARRIVED") != null) {
            if (map1.get("QTY_ARRIVED") != null) {
                ifsInventoryQuantity.setQtyArrived(new BigDecimal(map1.get("QTY_ARRIVED").toString())); // æŠµè¾¾çš„采购数量
            }
            if(map1.get("QTY_INSPECTED") != null) {
            if (map1.get("QTY_INSPECTED") != null) {
                ifsInventoryQuantity.setQtyInspected(new BigDecimal(map1.get("QTY_INSPECTED").toString())); // å·²æ£€éªŒçš„购买数量
            }
            if(map1.get("QTY_TO_INSPECT") != null) {
            if (map1.get("QTY_TO_INSPECT") != null) {
                ifsInventoryQuantity.setQtyToInspect(new BigDecimal(map1.get("QTY_TO_INSPECT").toString())); // è¦æ£€éªŒçš„采购数量
            }
            if(map1.get("INV_QTY_IN_STORE") != null) {
            if (map1.get("INV_QTY_IN_STORE") != null) {
                ifsInventoryQuantity.setInvQtyInStore(new BigDecimal(map1.get("INV_QTY_IN_STORE").toString())); // æŠµè¾¾çš„库存数量
            }
            if(map1.get("PUR_QTY_IN_STORE") != null) {
                ifsInventoryQuantity.setPurQtyInStore(new BigDecimal( map1.get("PUR_QTY_IN_STORE").toString())); // æŠµè¾¾çš„采购数量
            if (map1.get("PUR_QTY_IN_STORE") != null) {
                ifsInventoryQuantity.setPurQtyInStore(new BigDecimal(map1.get("PUR_QTY_IN_STORE").toString())); // æŠµè¾¾çš„采购数量
            }
            ifsInventoryQuantity.setSupplierId(map1.get("SUPPLIER_ID") == null ? "" : map1.get("SUPPLIER_ID").toString()); // ä¾›åº”商ID
@@ -605,21 +609,21 @@
            ifsInventoryQuantity.setBuyerCode(map1.get("BUYER_CODE") == null ? "" : map1.get("BUYER_CODE").toString()); // é‡‡è´­å‘˜
            ifsInventoryQuantity.setBuyerName(map1.get("BUYER_NAME") == null ? "" : map1.get("BUYER_NAME").toString()); // é‡‡è´­å‘˜åç§°
            if(map1.get("ARRIVE_DATE") != null) {
                ifsInventoryQuantity.setArriveDate(LocalDateTime.parse(map1.get("ARRIVE_DATE").toString(),dateTimeFormatter)); // å®žé™…到货日期
            if (map1.get("ARRIVE_DATE") != null) {
                ifsInventoryQuantity.setArriveDate(LocalDateTime.parse(map1.get("ARRIVE_DATE").toString(), dateTimeFormatter)); // å®žé™…到货日期
            }
            if(map1.get("DELIVERY_DATE") != null) {
                ifsInventoryQuantity.setDeliveryDate(LocalDateTime.parse(map1.get("DELIVERY_DATE").toString(),dateTimeFormatter)); // å®žé™…交货日期
            if (map1.get("DELIVERY_DATE") != null) {
                ifsInventoryQuantity.setDeliveryDate(LocalDateTime.parse(map1.get("DELIVERY_DATE").toString(), dateTimeFormatter)); // å®žé™…交货日期
            }
            if(map1.get("PRODUCT_DATE") != null) {
                ifsInventoryQuantity.setProductDate(LocalDateTime.parse(map1.get("PRODUCT_DATE").toString(),dateTimeFormatter)); // ç”Ÿäº§æ—¥æœŸ
            if (map1.get("PRODUCT_DATE") != null) {
                ifsInventoryQuantity.setProductDate(LocalDateTime.parse(map1.get("PRODUCT_DATE").toString(), dateTimeFormatter)); // ç”Ÿäº§æ—¥æœŸ
            }
            if(map1.get("INVALID_DATE") != null) {
                ifsInventoryQuantity.setInvalidDate(LocalDateTime.parse(map1.get("INVALID_DATE").toString(),dateTimeFormatter)); // å¤±æ•ˆæ—¥æœŸ
            if (map1.get("INVALID_DATE") != null) {
                ifsInventoryQuantity.setInvalidDate(LocalDateTime.parse(map1.get("INVALID_DATE").toString(), dateTimeFormatter)); // å¤±æ•ˆæ—¥æœŸ
            }
            if(map1.get("APPROVED_DATE") != null) {
                ifsInventoryQuantity.setApprovedDate(LocalDateTime.parse(map1.get("APPROVED_DATE").toString(),dateTimeFormatter)); // å®¡æ‰¹æ—¥æœŸ
            if (map1.get("APPROVED_DATE") != null) {
                ifsInventoryQuantity.setApprovedDate(LocalDateTime.parse(map1.get("APPROVED_DATE").toString(), dateTimeFormatter)); // å®¡æ‰¹æ—¥æœŸ
            }
            ifsInventoryQuantity.setReqCeater(map1.get("REQ_CEATER") == null ? "" : map1.get("REQ_CEATER").toString()); // é‡‡è´­ç”³è¯·åˆ›å»ºäºº
            ifsInventoryQuantity.setReqCeaterName(map1.get("REQ_CEATER_NAME") == null ? "" : map1.get("REQ_CEATER_NAME").toString()); // é‡‡è´­ç”³è¯·åˆ›å»ºäººåç§°
@@ -641,9 +645,9 @@
                    .eq(IfsInventoryQuantity::getWaivDevRejNo, ifsInventoryQuantity.getWaivDevRejNo())
                    .eq(IfsInventoryQuantity::getActivitySeq, ifsInventoryQuantity.getActivitySeq())
            );
            if(count == 0) {
            if (count == 0) {
                ifsInventoryQuantity.setIsFirst(0);
                if(isSplitOrder){
                if (isSplitOrder) {
                    ifsInventoryQuantity.setIsSplitOrder(1);
                }
                //todo:不清楚用途,暂时注释掉
@@ -660,8 +664,9 @@
    /**
     * id是原材料的id
     *
     * <p>
     * ä¿®æ”¹è®¢å•单号
     *
     * @param insOrder
     */
    @Override
@@ -674,7 +679,7 @@
        List<Integer> insOrderIds = insOrders.stream().map(InsOrder::getId).collect(Collectors.toList());
        Long count = insReportMapper.selectCount(Wrappers.<InsReport>lambdaQuery()
                .in(InsReport::getInsOrderId, insOrderIds));
        if (count > 0 ) {
        if (count > 0) {
            throw new ErrorException("当前订单已经生成了报告不能修改编号");
        }
@@ -726,6 +731,7 @@
    /**
     * ä¿®æ”¹é‡‡è´­è®¢å•接收状态, é¿å…å›žæ»š
     *
     * @param id
     */
    @Transactional
@@ -737,6 +743,7 @@
    /**
     * æ–°å¢žé“œå•丝下单
     *
     * @param list
     * @param insOrder
     * @return
@@ -822,6 +829,7 @@
    /**
     * ä¿®æ”¹å§”托下单编号
     *
     * @param insOrder
     */
    @Override
@@ -829,7 +837,7 @@
        // åˆ¤æ–­å½“前订单是否生成了报告, ç”Ÿæˆäº†æŠ¥å‘Šä¸èƒ½ä¿®æ”¹å•号
        Long count = insReportMapper.selectCount(Wrappers.<InsReport>lambdaQuery()
                .eq(InsReport::getInsOrderId, insOrder.getId()));
        if (count > 0 ) {
        if (count > 0) {
            throw new ErrorException("当前订单已经生成了报告不能修改编号");
        }
@@ -872,6 +880,7 @@
    /**
     * ä¿®æ”¹æ£€éªŒä¸‹å•内容
     *
     * @param insOrderUpdateDto
     * @return
     */
@@ -897,6 +906,7 @@
    /**
     * æˆå“æ ‡ç­¾æ‰“印
     *
     * @param ids
     * @return
     */
@@ -905,8 +915,14 @@
        return insOrderMapper.labelOrderPrinting(ids);
    }
    @Override
    public List<InventoryDetailDTO> labelOutsideOrderPrinting(List<Integer> ids) {
        return insOrderMapper.labelOutsideOrderPrinting(ids);
    }
    /**
     * æ ¹æ®æ ·å“id查询检验项树
     *
     * @param insSampleId
     * @return
     */
@@ -935,6 +951,7 @@
    /**
     * æ·»åŠ é—æ¼çš„æ£€éªŒé¡¹
     *
     * @param omitOrderProductDto
     * @return
     */
@@ -970,6 +987,7 @@
    /**
     * æˆå“æ£€éªŒå•导出
     *
     * @param sampleOrderDto
     * @param response
     */
@@ -993,7 +1011,7 @@
        // åˆ¤æ–­æ˜¯å¦æ˜¯ä¸åˆæ ¼, ä¸åˆæ ¼æŸ¥è¯¢ä¸åˆæ ¼é¡¹
        for (SampleOrderDto orderDto : sampleOrderDtoList) {
            if (orderDto.getInsResult() != null && orderDto.getInsResult() == 0){
            if (orderDto.getInsResult() != null && orderDto.getInsResult() == 0) {
                // æŸ¥è¯¢ä¸åˆæ ¼é¡¹
                List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(orderDto.getId());
                orderDto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ","));
@@ -1024,6 +1042,7 @@
    /**
     * ä¿®æ”¹æ ·å“åž‹å·
     *
     * @param insSample
     */
    @Override
@@ -1031,7 +1050,7 @@
        // åˆ¤æ–­å½“前订单是否生成了报告, ç”Ÿæˆäº†æŠ¥å‘Šä¸èƒ½ä¿®æ”¹å•号
        Long count = insReportMapper.selectCount(Wrappers.<InsReport>lambdaQuery()
                .eq(InsReport::getInsOrderId, insSample.getInsOrderId()));
        if (count > 0 ) {
        if (count > 0) {
            throw new ErrorException("当前订单已经生成了报告不能修改编号");
        }
@@ -1042,6 +1061,7 @@
    /**
     * æŸ¥è¯¢å½“前时间是否没有该检测项的抽样计划
     *
     * @param sampleList
     * @param insOrder
     * @return
@@ -1052,7 +1072,7 @@
        if (insOrder.getQuarterItemId() != null) {
            Long quarterItemCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
                    .eq(InsOrder::getQuarterItemId, insOrder.getQuarterItemId())
                    .notIn(InsOrder::getState, -1 ,2 ,3));
                    .notIn(InsOrder::getState, -1, 2, 3));
            if (quarterItemCount > 0) {
                throw new ErrorException("该抽样计划已被绑定过");
            }
@@ -1159,11 +1179,12 @@
    /**
     * ifs移库操作
     *
     * @param inventoryQuantity
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
    public String moveRawMaterial(IfsInventoryQuantity inventoryQuantity) {
        //查询ifs订单详情
        IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectById(inventoryQuantity.getId());
@@ -1188,7 +1209,7 @@
                throw new ErrorException("IFS登记采购检验结果失败: " + result.getMessage());
            }
            //如果是拆分订单,则将同一接收号的订单标记已登记校验
            if(one.getIsSplitOrder()==1){
            if (one.getIsSplitOrder() == 1) {
                //查询其余拆分的订单
                List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
                        .eq(IfsInventoryQuantity::getOrderNo, one.getOrderNo())
@@ -1198,15 +1219,15 @@
                        .eq(IfsInventoryQuantity::getReceiptNo, one.getReceiptNo())
                        .eq(IfsInventoryQuantity::getIsSplitOrder, 1)
                );
                if(Objects.nonNull(quantityList) && !quantityList.isEmpty()){
                if (Objects.nonNull(quantityList) && !quantityList.isEmpty()) {
                    //修改采购订单登记状态
                    List<Long> ids = quantityList.stream().map(IfsInventoryQuantity::getId).collect(Collectors.toList());
                    ifsInventoryQuantityMapper.update(null,Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                            .set(IfsInventoryQuantity::getIsRegister,1)
                    ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                            .set(IfsInventoryQuantity::getIsRegister, 1)
                            .in(IfsInventoryQuantity::getId, ids)
                    );
                }
            }else{
            } else {
                this.updateIfsInventoryQuantity(one.getId());
            }
        }
@@ -1215,7 +1236,7 @@
         */
        // æ£€éªŒåŽç§»åº“
        //1301:原材料合格库,CP-02-001:成品库
        toLocation = StringUtils.equals(inventoryQuantity.getOrderType(), OrderType.RAW.getValue())?"1301":"CP-02-001";
        toLocation = StringUtils.equals(inventoryQuantity.getOrderType(), OrderType.RAW.getValue()) ? "1301" : "CP-02-001";
        Map<String, Object> moveResultMap = new HashMap<>();
        List<Map<String, Object>> moveResultList = new ArrayList<>();
        Map<String, Object> moveMap = new HashMap<>();
@@ -1254,6 +1275,7 @@
    /**
     * å…ˆä¿®æ”¹é‡‡è´­è®¢å•批次号, åŽè¿›è¡Œç§»åº“操作
     *
     * @param one
     * @param toLocation
     */
inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -408,6 +408,43 @@
        </foreach>
    </select>
    <!-- å¤–购下单成品标签打印 -->
    <select id="labelOutsideOrderPrinting" resultType="com.ruoyi.basic.dto.InventoryDetailDTO">
        SELECT
        iiq.id,
        iiq.part_desc,
        iiq.lot_batch_no,
        iiq.part_no,
        ippr.insulation_color,
        ippr.outer_color,
        ippr.drum_no,
        ippr.start_meter_mark,
        ippr.end_meter_mark,
        io.update_time,
        io.ins_state,
        -- æ£€éªŒäººæŸ¥è¯¢ï¼šä¼˜å…ˆå–指派的负责人,如果没有则取订单创建人
        COALESCE(isu.userName, u.name) AS inspector_name
        FROM ifs_inventory_quantity iiq
        LEFT JOIN ifs_part_props_record ippr ON ippr.ifs_inventory_id = iiq.id
        LEFT JOIN ins_order io ON io.ifs_inventory_id = iiq.id AND io.state != -1
        -- å…³è”用户表,用于获取订单创建人姓名
        LEFT JOIN user u ON io.create_user = u.id
        -- å…³è”子查询,用于获取 ins_sample_user è¡¨ä¸­æŒ‡æ´¾çš„æ£€éªŒè´Ÿè´£äºº
        LEFT JOIN (
        SELECT
        ins_sample_id,
        GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS userName
        FROM ins_sample_user isu_inner
        LEFT JOIN user uu ON isu_inner.user_id = uu.id
        WHERE isu_inner.state = 0
        GROUP BY ins_sample_id
        ) isu ON isu.ins_sample_id = io.id
        WHERE iiq.id IN
        <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
            #{val}
        </foreach>
    </select>
    <!-- æŸ¥è¯¢æ£€éªŒå•数据 -->
    <select id="rawAllInsOrderExport" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
        select *