guoyujia 1 tháng trước cách đây
mục cha
commit
b645e41488

+ 6 - 0
src/main/java/cn/ezhizao/framework/qrCode/QrCodeService.java

@@ -30,6 +30,8 @@ public class QrCodeService {
     private BarCodeDemo barCodeDemo;
     @Resource
     private QrStorageCoderDemo qrStorageCoderDemo;
+    @Resource
+    private QrTransferCoderDemo qrTransferCoderDemo;
 
     @Resource
     private WaterMakerUtils waterMakerUtils;
@@ -62,6 +64,10 @@ public class QrCodeService {
         BufferedImage bufferedImage = qrStorageCoderDemo.createQrCode(null, null, content, footer);
         createImage(bufferedImage, filePath);
     }
+    public void createNewTransferCodeToFile(String content, String filePath,String footer) {
+        BufferedImage bufferedImage = qrTransferCoderDemo.createQrCode(null, null, content, footer);
+        createImage(bufferedImage, filePath);
+    }
 
     // 生成图片文件
     public static void createImage(BufferedImage image, String fileLocation) {

+ 156 - 0
src/main/java/cn/ezhizao/framework/qrCode/QrTransferCoderDemo.java

@@ -0,0 +1,156 @@
+package cn.ezhizao.framework.qrCode;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.qrcode.QrCodeUtil;
+import cn.hutool.extra.qrcode.QrConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * 合成二维码工具类
+ */
+@Service
+@Slf4j
+public class QrTransferCoderDemo {
+
+    //之前宽度350 和 300 0301需求变大
+    /**
+     * 图片的宽度
+     */
+    private static final int IMAGE_WIDTH = 1181;
+    /**
+     * 图片的高度(需按实际内容高度进行调整)
+     */
+    private static final int IMAGE_HEIGHT = 1181;
+    /**
+     * 二维码的宽度
+     */
+    private static final int QR_CODE_WIDTH = 700;
+    /**
+     * 二维码的宽度
+     */
+    private static final int QR_CODE_HEIGHT = 800;
+
+    private static final String FORMAT_NAME = "JPG";
+
+    /**
+     * @param imgLogo logo图片
+     * @param title   头部标题
+     * @param content 内容
+     * @param footer  底部文字
+     */
+    public static BufferedImage createQrCode(String imgLogo, String title, String content, String footer) {
+//        // 头部文字区域高度
+        int titleHeight = 70;
+
+        // 创建主模板图片
+        BufferedImage image = new BufferedImage(IMAGE_WIDTH, IMAGE_HEIGHT, BufferedImage.TYPE_INT_RGB);
+        Graphics2D main = image.createGraphics();
+        // 设置图片的背景色
+        main.setColor(Color.white); //白色
+        main.fillRect(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
+
+        // 动态高度
+        int height = 110;
+//
+//        //***********************页面头部 文字****************
+//        Graphics2D titleRight = image.createGraphics();
+//        // 设置字体颜色 black黑 white白
+//        titleRight.setColor(Color.black);
+//        // 设置字体
+//        Font titleFont = new Font("宋体", Font.BOLD, 25);
+//        titleRight.setFont(titleFont);
+//        titleRight.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
+//        // 居中 x开始的位置:(图片宽度-字体大小*字的个数)/2
+//        int x = (IMAGE_WIDTH - (titleFont.getSize() * title.length())) / 2;
+//        titleRight.drawString(title, x, (titleHeight) / 2 + 10);
+//        height += titleHeight;
+
+        //**********************中间文字部分*********
+//        Graphics2D centerWord = image.createGraphics();
+//        // 设置字体颜色,先设置颜色,再填充内容
+//        centerWord.setColor(Color.black);
+//        // 设置字体
+//        Font wordFont = new Font("宋体", Font.PLAIN, 15);
+//        centerWord.setFont(wordFont);
+//        centerWord.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
+//        String[] info = content.split("-");
+//        for (String s : info) {
+//            // x开始的位置:(图片宽度-字体大小*字的个数)/2
+//            int strWidth = centerWord.getFontMetrics().stringWidth(s);
+//            // 总长度减去文字长度的一半  (居中显示)
+//            int startX = (IMAGE_WIDTH - strWidth) / 2;
+//            height += 20;
+//            centerWord.drawString(s, startX, height);
+//        }
+
+        //***************插入二维码图片***********************************************
+        Graphics codePic = image.getGraphics();
+        BufferedImage codeImg;
+        QrConfig config = new QrConfig();
+        config.setWidth(QR_CODE_WIDTH);
+        config.setHeight(QR_CODE_HEIGHT);
+        if (StrUtil.isNotBlank(imgLogo)) {
+            config.setImg(imgLogo);
+        }
+        codeImg = QrCodeUtil.generate(content, config);
+        // 绘制二维码
+        codePic.drawImage(codeImg, (IMAGE_WIDTH - QR_CODE_WIDTH) / 2, height, QR_CODE_WIDTH, QR_CODE_HEIGHT, null);
+        codePic.dispose();
+
+        //**********************底部公司名字*********
+        Graphics2D typeLeft = image.createGraphics();
+        // 设置字体颜色
+        typeLeft.setColor(Color.black);
+        // 设置字体
+        Font footerFont = new Font("宋体", Font.BOLD, 240);
+        typeLeft.setFont(footerFont);
+        typeLeft.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
+        // x开始的位置:(图片宽度-字体大小*字的个数)/2
+//        int startX = 600;
+        int startX = 100;
+        height += 990;
+        typeLeft.drawString(footer, startX, height);
+
+        //***************插入标志图片***********************************************
+//        Graphics signPic = image.getGraphics();
+//        BufferedImage signImg = null;
+//        try {
+//            signImg = ImageIO.read(new java.io.File(imgSign));
+//        } catch (Exception e) {
+//        }
+//
+//        if (signImg != null) {
+//            signPic.drawImage(signImg, 0, 130, QR_CODE_WIDTH, QR_CODE_HEIGHT, null);
+//            signPic.dispose();
+//        }
+        // 返回image方便后续处理是生成图片还是生成base64字符串
+        return image;
+    }
+
+    // 生成图片文件
+    public static void createImage(BufferedImage image, String fileLocation) {
+        if (image != null) {
+            try {
+                ImageIO.write(image, "png", new File(fileLocation));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+
+    public static void main(String[] args) {
+        String content = "汇丰管业-HDPE节流式缠绕增强管-DN300-20210101-A001-0821001-080901000001";
+        BufferedImage bufferedImage = createQrCode(null, "物资模块", content, "三峡科技有限公司");
+        createImage(bufferedImage, "D:/test.png");
+    }
+
+}

+ 19 - 0
src/main/java/cn/ezhizao/framework/task/RyTask.java

@@ -3,7 +3,9 @@ package cn.ezhizao.framework.task;
 import cn.ezhizao.common.utils.StringUtils;
 import cn.ezhizao.framework.qrCode.QrCodeService;
 import cn.ezhizao.project.business.domain.BizStorageCode;
+import cn.ezhizao.project.business.domain.BizTransferCode;
 import cn.ezhizao.project.business.service.IBizStorageCodeService;
+import cn.ezhizao.project.business.service.IBizTransferCodeService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -23,6 +25,8 @@ public class RyTask
     @Resource
     private IBizStorageCodeService bizStorageCodeService;
     @Resource
+    private IBizTransferCodeService bizTransferCodeService;
+    @Resource
     QrCodeService qrCodeService;
 
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
@@ -73,6 +77,21 @@ public <T> void GenerateQcCode(T t) throws JsonProcessingException {
             qrCodeService.createNewStorageCodeToFile(storageCode, path, storageCode);
             bizStorageCodeService.updateById(code);
             break;
+        case "cn.ezhizao.project.business.domain.BizTransferCode":
+
+            BizTransferCode tranCode = (BizTransferCode) t;
+            // 定义二维码图片的存储路径
+            String transferCode = tranCode.getCode(); // 假设您仍然需要使用更新transferCode对象的qcCode属性的code
+            path = uploadPath + "qcCode/transferCode/" + transferCode + ".png";
+
+            // 更新transferCode对象的qcCode属性
+            tranCode.setQcCode("/profile/upload/qcCode/transferCode/" + transferCode + ".png");
+
+            // 直接使用字符串生成二维码并保存到文件
+            // 假设createNewCodeToFile方法可以接受一个字符串参数
+            qrCodeService.createNewTransferCodeToFile(transferCode, path, transferCode);
+            bizTransferCodeService.updateById(tranCode);
+            break;
         default:
             break;
     }

+ 181 - 0
src/main/java/cn/ezhizao/project/business/controller/BizTransferCodeController.java

@@ -0,0 +1,181 @@
+package cn.ezhizao.project.business.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import cn.ezhizao.common.utils.poi.ExcelUtil;
+import cn.ezhizao.framework.aspectj.lang.annotation.Log;
+import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
+import cn.ezhizao.framework.task.RyTask;
+import cn.ezhizao.framework.web.controller.BaseController;
+import cn.ezhizao.framework.web.domain.AjaxResult;
+import cn.ezhizao.framework.web.page.TableDataInfo;
+import cn.ezhizao.project.business.domain.BizTransferCode;
+import cn.ezhizao.project.system.domain.SysDept;
+import cn.ezhizao.project.system.mapper.SysDeptMapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.ezhizao.project.business.domain.BizTransferCode;
+import cn.ezhizao.project.business.service.IBizTransferCodeService;
+
+
+/**
+ * 转运码Controller
+ *
+ * @author ezhizao
+ * @date 2025-05-19
+ */
+@RestController
+@RequestMapping("/business/transferCode")
+public class BizTransferCodeController extends BaseController
+{
+    @Resource
+    private IBizTransferCodeService bizTransferCodeService;
+    @Resource
+    private SysDeptMapper sysDeptMapper;
+    @Resource
+    HttpServletRequest request;
+    @Resource
+    private RyTask task;
+
+    /**
+     * 查询转运码列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(BizTransferCode bizTransferCode) throws NoSuchFieldException, IllegalAccessException, JsonProcessingException {
+        startPage();
+        String tenantId = request.getHeader("tenantId");
+        if(!tenantId.equals("0")){
+            bizTransferCode.setTenantId(Long.valueOf(tenantId));
+        }
+        List<BizTransferCode> list = bizTransferCodeService.getList(bizTransferCode);
+        for (BizTransferCode item : list
+        ) {
+            if (item.getQcCode().equals("")) {
+                task.GenerateQcCode(item);
+            }
+        }
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出转运码列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:transferCode:export')")
+    @Log(title = "转运码", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BizTransferCode bizTransferCode) throws NoSuchFieldException, IllegalAccessException
+    {
+        setTenantId(bizTransferCode);
+        List<BizTransferCode> list = bizTransferCodeService.getList(bizTransferCode);
+        ExcelUtil<BizTransferCode> util = new ExcelUtil<BizTransferCode>(BizTransferCode.class);
+        util.exportExcel(response, list, "转运码数据");
+    }
+
+    /**
+     * 获取转运码详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:transferCode:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(bizTransferCodeService.getById(id));
+    }
+
+    /**
+     * 新增转运码
+     */
+    @Log(title = "转运码", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BizTransferCode bizTransferCode) throws NoSuchFieldException, IllegalAccessException
+    {
+        //厂别
+        String tenantId = request.getHeader("tenantId");
+        if(tenantId.equals("0")){
+            tenantId = "1";
+        }
+        //判断起始编号是否使用
+        List<BizTransferCode> startCodeList = bizTransferCodeService.query().eq("start_code", bizTransferCode.getStartCode()).ne("dept_id",bizTransferCode.getDeptId()).list();
+        if(!startCodeList.isEmpty()){
+            SysDept sysDept = sysDeptMapper.selectDeptById(startCodeList.get(0).getDeptId());
+            return error("该起始编码已被"+sysDept.getDeptName()+"工段占用");
+        }
+        //判断当前工段起始编码的流水号
+        List<BizTransferCode> list = bizTransferCodeService.query().eq("dept_id", bizTransferCode.getDeptId()).eq("start_code", bizTransferCode.getStartCode())
+                .orderByDesc("serial_number").list();
+        List<BizTransferCode> transferCodeList = new ArrayList<>();
+        if(list.size() > 0){
+            //当前工段起始编码存过值
+            Long serialNumber = list.get(0).getSerialNumber();
+            //超过三位
+            if(serialNumber + bizTransferCode.getNum() > 999){
+                return error("超过三位流水号,请重新生成");
+            }
+            for(int i = 0; i <  bizTransferCode.getNum(); i++){
+                BizTransferCode code = new BizTransferCode();
+                code.setTenantId(Long.valueOf(tenantId));
+                code.setDeptId(bizTransferCode.getDeptId());
+                code.setStartCode(bizTransferCode.getStartCode());
+                ++serialNumber;
+                code.setSerialNumber(serialNumber);
+                String serialStr = String.format("%03d", serialNumber);
+                // 拼接生成QcCode
+                String codeStr = bizTransferCode.getStartCode() + serialStr;
+                code.setCode(codeStr);
+                transferCodeList.add(code);
+            }
+        }else{
+            Long serialNumber = 0L;
+            //当前年份没有存过值
+            for(int i = 0; i <  bizTransferCode.getNum(); i++){
+                BizTransferCode code = new BizTransferCode();
+                code.setTenantId(Long.valueOf(tenantId));
+                code.setDeptId(bizTransferCode.getDeptId());
+                code.setStartCode(bizTransferCode.getStartCode());
+                ++serialNumber;
+                code.setSerialNumber(serialNumber);
+                String serialStr = String.format("%03d", serialNumber);
+                // 拼接生成QcCode
+                String codeStr = bizTransferCode.getStartCode() + serialStr;
+                code.setCode(codeStr);
+                transferCodeList.add(code);
+            }
+        }
+        return toAjax(bizTransferCodeService.saveBatch(transferCodeList));
+    }
+
+    /**
+     * 修改转运码
+     */
+    @PreAuthorize("@ss.hasPermi('business:transferCode:edit')")
+    @Log(title = "转运码", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BizTransferCode bizTransferCode) throws NoSuchFieldException, IllegalAccessException
+    {
+        setTenantId(bizTransferCode);
+        return toAjax(bizTransferCodeService.updateById(bizTransferCode));
+    }
+
+    /**
+     * 删除转运码
+     */
+    @PreAuthorize("@ss.hasPermi('business:transferCode:remove')")
+    @Log(title = "转运码", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable List<Long> ids)
+    {
+        return toAjax(bizTransferCodeService.removeBatchByIds(ids));
+    }
+}

+ 52 - 0
src/main/java/cn/ezhizao/project/business/domain/BizTransferCode.java

@@ -0,0 +1,52 @@
+package cn.ezhizao.project.business.domain;
+
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
+import cn.ezhizao.framework.web.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 转运码对象 biz_transfer_code
+ *
+ * @author ezhizao
+ * @date 2025-05-19
+ */
+@Data
+@TableName(value = "biz_transfer_code")
+public class BizTransferCode extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 租户 id */
+    @ApiModelProperty(value = "${comment}")
+    private Long tenantId;
+
+    /** 工段id */
+    @ApiModelProperty(value = "${comment}")
+    private Long deptId;
+
+    /** 二维码存放地址 */
+    @Excel(name = "二维码存放地址")
+    @ApiModelProperty(value = "二维码存放地址")
+    private String qcCode;
+
+    /** 转运码code */
+    @Excel(name = "转运码code")
+    @ApiModelProperty(value = "转运码code")
+    private String code;
+
+    /** 起始编号 */
+    @Excel(name = "起始编号")
+    @ApiModelProperty(value = "起始编号")
+    private String startCode;
+
+    /** 流水号 */
+    @Excel(name = "流水号")
+    @ApiModelProperty(value = "流水号")
+    private Long serialNumber;
+    @TableField(exist = false)
+    private Long num;
+
+}

+ 29 - 0
src/main/java/cn/ezhizao/project/business/mapper/BizTransferCodeMapper.java

@@ -0,0 +1,29 @@
+package cn.ezhizao.project.business.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import cn.ezhizao.project.business.domain.BizTransferCode;
+
+/**
+ * 转运码Mapper接口
+ *
+ * @author ezhizao
+ * @date 2025-05-19
+ */
+public interface BizTransferCodeMapper extends BaseMapper<BizTransferCode>
+{
+    /**
+     * 查询转运码列表
+     *
+     * @param bizTransferCode 转运码
+     * @return 转运码集合
+     */
+    public List<BizTransferCode> getList(BizTransferCode bizTransferCode);
+
+    /**
+     * 物理删除
+     * @param bizTransferCode
+     * @return 删除结果
+    */
+    public int physicalDelete(BizTransferCode bizTransferCode);
+}

+ 30 - 0
src/main/java/cn/ezhizao/project/business/service/IBizTransferCodeService.java

@@ -0,0 +1,30 @@
+package cn.ezhizao.project.business.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import cn.ezhizao.project.business.domain.BizTransferCode;
+
+/**
+ * 转运码Service接口
+ *
+ * @author ezhizao
+ * @date 2025-05-19
+ */
+public interface IBizTransferCodeService extends IService<BizTransferCode>
+{
+    /**
+     * 查询转运码列表
+     *
+     * @param bizTransferCode 转运码
+     * @return 转运码集合
+     */
+    public List<BizTransferCode> getList(BizTransferCode bizTransferCode);
+
+    /**
+     * 物理删除
+     * @param bizTransferCode
+     * @return 删除结果
+     */
+    public int physicalDelete(BizTransferCode bizTransferCode);
+
+}

+ 43 - 0
src/main/java/cn/ezhizao/project/business/service/impl/BizTransferCodeServiceImpl.java

@@ -0,0 +1,43 @@
+package cn.ezhizao.project.business.service.impl;
+
+import java.util.List;
+import javax.annotation.Resource;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import cn.ezhizao.project.business.mapper.BizTransferCodeMapper;
+import cn.ezhizao.project.business.domain.BizTransferCode;
+import cn.ezhizao.project.business.service.IBizTransferCodeService;
+
+/**
+ * 转运码Service业务层处理
+ *
+ * @author ezhizao
+ * @date 2025-05-19
+ */
+@Service
+public class BizTransferCodeServiceImpl  extends ServiceImpl<BizTransferCodeMapper, BizTransferCode> implements IBizTransferCodeService
+{
+    @Resource
+    private BizTransferCodeMapper bizTransferCodeMapper;
+
+    /**
+     * 查询转运码列表
+     *
+     * @param bizTransferCode 转运码
+     * @return 转运码
+     */
+    @Override
+    public List<BizTransferCode> getList(BizTransferCode bizTransferCode)
+    {
+        return bizTransferCodeMapper.getList(bizTransferCode);
+    }
+
+    /**
+     * 物理删除
+     * @param bizTransferCode
+     * @return 删除结果
+     */
+    @Override
+    public int physicalDelete(BizTransferCode bizTransferCode){ return bizTransferCodeMapper.physicalDelete(bizTransferCode); };
+
+}

+ 34 - 11
src/main/resources/mybatis/business/BizDayworkMapper.xml

@@ -928,22 +928,46 @@
 
 
     <!--    -->
+<!--    <select id="getItemListForOutsource" parameterType="BizDayworkItem" resultMap="BizDayworkItemResultForOutsource">-->
+<!--        SELECT-->
+<!--        t1.*-->
+<!--        FROM biz_daywork_item t1-->
+<!--        LEFT JOIN sys_dept t2 ON t1.dept_id=t2.dept_id-->
+<!--        LEFT JOIN biz_daywork t3 ON t1.daywork_id = t3.id-->
+<!--        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">-->
+<!--            t1.deleted = 0 AND-->
+<!--            t1.status >= 4 AND-->
+<!--            # 查找创建时间最新的一条-->
+<!--            t1.create_time = (-->
+<!--            SELECT MAX(t5.create_time)-->
+<!--            FROM biz_daywork_item t5-->
+<!--            WHERE t5.daywork_id = t1.daywork_id AND t5.deleted = 0-->
+<!--            )-->
+<!--            <if test="deptCode != null and deptCode != ''">AND t2.dept_code = #{deptCode}</if>-->
+<!--            <if test="isSupplierProducts != null and isSupplierProducts != 1 ">-->
+<!--                AND t3.product_id IN (SELECT product_id FROM biz_supplier_product WHERE supplier_id=#{supplierId} AND-->
+<!--                deleted=0)-->
+<!--            </if>-->
+
+<!--            ORDER BY t1.process_step_number ASC-->
+<!--        </trim>-->
+<!--    </select>-->
     <select id="getItemListForOutsource" parameterType="BizDayworkItem" resultMap="BizDayworkItemResultForOutsource">
         SELECT
         t1.*
         FROM biz_daywork_item t1
-        LEFT JOIN sys_dept t2 ON t1.dept_id=t2.dept_id
+        INNER JOIN (
+        SELECT daywork_id, MAX(create_time) AS max_create_time
+        FROM biz_daywork_item
+        WHERE deleted = 0
+        GROUP BY daywork_id
+        ) t5 ON t1.daywork_id = t5.daywork_id AND t1.create_time = t5.max_create_time
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.dept_id
         LEFT JOIN biz_daywork t3 ON t1.daywork_id = t3.id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            t1.deleted = 0 AND
-            t1.status >= 4 AND
-            # 查找创建时间最新的一条
-            t1.create_time = (
-            SELECT MAX(t5.create_time)
-            FROM biz_daywork_item t5
-            WHERE t5.daywork_id = t1.daywork_id AND t5.deleted = 0
-            )
-            <if test="deptCode != null and deptCode != ''">AND t2.dept_code = #{deptCode}</if>
+            t1.deleted = 0
+            AND t1.status >= 4
+            AND t2.dept_code = 170000
             <if test="isSupplierProducts != null and isSupplierProducts != 1 ">
                 AND t3.product_id IN (SELECT product_id FROM biz_supplier_product WHERE supplier_id=#{supplierId} AND
                 deleted=0)
@@ -953,7 +977,6 @@
         </trim>
     </select>
 
-
     <select id="getDeptList" resultType="cn.ezhizao.project.system.domain.SysDept">
         SELECT DISTINCT t3.dept_id AS Value,
         t3.dept_name AS Label

+ 33 - 0
src/main/resources/mybatis/business/BizTransferCodeMapper.xml

@@ -0,0 +1,33 @@
+<?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="cn.ezhizao.project.business.mapper.BizTransferCodeMapper">
+
+    <resultMap type="cn.ezhizao.project.business.domain.BizTransferCode" id="BizTransferCodeResult">
+        <id column="id" property="id"/>
+    </resultMap>
+
+
+    <select id="getList" parameterType="BizTransferCode" resultMap="BizTransferCodeResult">
+        SELECT * FROM biz_transfer_code
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            deleted = 0
+            <if test="qcCode != null  and qcCode != ''"> AND qc_code = #{qcCode}</if>
+            <if test="deptId != null  and deptId != ''"> AND dept_id = #{deptId}</if>
+            <if test="code != null  and code != ''"> AND code like concat('%',#{code},'%')</if>
+            <if test="startCode != null  and startCode != ''"> AND start_code = #{startCode}</if>
+            <if test="serialNumber != null "> AND serial_number = #{serialNumber}</if>
+        </trim>
+    </select>
+
+    <delete id="physicalDelete">
+        DELETE FROM biz_transfer_code
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            <if test="id != null">
+                id = #{id} AND
+            </if>
+       <!-- 删除条件为其他外键可以在这里加 -->
+        </trim>
+    </delete>
+</mapper>