jiazx0107@163.com
2023-11-06 69cd9f59a0fabf12f8c9147fcba7f69817a870b3
igds-inout/src/main/java/com/ld/igds/inout/view/InoutDataPR.java
@@ -1,24 +1,38 @@
package com.ld.igds.inout.view;
import java.io.File;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.bstek.bdf2.core.business.IUser;
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.bstek.dorado.uploader.UploadFile;
import com.bstek.dorado.uploader.annotation.FileResolver;
import com.ld.igds.file.CoreFileService;
import com.ld.igds.inout.InoutConstant;
import com.ld.igds.inout.dto.InoutData;
import com.ld.igds.inout.dto.InoutParam;
import com.ld.igds.inout.manager.InoutManager;
import com.ld.igds.inout.manager.InoutReportManager;
import com.ld.igds.inout.service.InoutService;
import com.ld.igds.models.DicTrigger;
import com.ld.igds.util.ContextUtil;
import com.ld.igds.util.RedisUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
 * 出入库详单页面管理
@@ -31,12 +45,45 @@
@Component
public class InoutDataPR {
    @Autowired
    @Resource
    private InoutService inoutService;
    @Autowired
    @Resource
    private InoutReportManager inoutReportManager;
    @Autowired
    @Resource
    private InoutManager inoutManager;
    @Autowired
    private CoreFileService fileService;
    @Autowired
    private RedisUtil redisUtil;
    // ${dorado.getDataProvider("inoutDataPR#triggerRecordStatus1").getResult()}
    @DataProvider
    public List<DicTrigger> triggerRecordStatus1() {
        List<DicTrigger> list = new ArrayList<DicTrigger>();
        list.add(new DicTrigger(InoutConstant.RECORD_STATUS_DEL, "作废单"));
        list.add(new DicTrigger(InoutConstant.RECORD_STATUS_NORMAL, "正常单"));
        return list;
    }
    // ${dorado.getDataProvider("inoutDataPR#triggerResult").getResult()}
    @DataProvider
    public List<DicTrigger> triggerResult() {
        List<DicTrigger> list = new ArrayList<DicTrigger>();
        list.add(new DicTrigger(InoutConstant.RESULT_1, "合格"));
        list.add(new DicTrigger(InoutConstant.RESULT_0, "不合格"));
        return list;
    }
    // ${dorado.getDataProvider("inoutDataPR#triggerSampleType").getResult()}
    @DataProvider
    public List<DicTrigger> triggerSampleType() {
        List<DicTrigger> list = new ArrayList<DicTrigger>();
        list.add(new DicTrigger(InoutConstant.SAMPLE_TYPE_MANUAL, "人工"));
        list.add(new DicTrigger(InoutConstant.SAMPLE_TYPE_AUTOMATIC, "自动"));
        list.add(new DicTrigger(InoutConstant.SAMPLE_TYPE_RANDOM, "智能随机"));
        return list;
    }
    /**
     * inoutDataPR#pageInoutData
@@ -46,8 +93,7 @@
     * @throws Exception
     */
    @DataProvider
    public void pageInoutData(Page<InoutData> page, InoutParam param)
            throws Exception {
    public void pageInoutData(Page<InoutData> page, InoutParam param) throws Exception {
        // 调用核心包中方法,需要做对象转换
        param.setPage(page.getPageNo());
        param.setLimit(page.getPageSize());
@@ -165,7 +211,6 @@
    @Expose
    public InoutData initAddData(String type) {
        IUser user = ContextUtil.getLoginUser();
        InoutData data = new InoutData();
        data.setCompanyId(user.getCompanyId());
        data.setRegisterTime(new Date());
@@ -187,15 +232,11 @@
     */
    @DataProvider
    public InoutData initDataByHand(String type) {
        IUser user = ContextUtil.getLoginUser();
        InoutData data = new InoutData();
        data.setCompanyId(user.getCompanyId());
        data.setRegisterTime(new Date());
        data.setCompleteTime(new Date());
        data.setType(type);
        data.setIntelCard("0000");
        data.setRegisterUser(user.getCname());
        data.setDeptId(ContextUtil.subDeptId(user));
        data.setCheckUser(user.getCname());
@@ -204,4 +245,62 @@
        return data;
    }
    /**
     * inoutDataPR#uploadImage
     *
     * @param file
     * @param parameter
     * @return
     */
    @FileResolver
    public String uploadImage(UploadFile file, Map<String, Object> parameter) {
        //车牌
        String plateNum = (String) parameter.get("plateNum");
        //流程
        String bizTag = (String) parameter.get("bizTag");
        String newFileName = null;
        try {
            String basePath = fileService.getInoutFilePath(new Date());
            // 获取新的ID
            newFileName = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
            if(StringUtils.isNotEmpty(bizTag)){
                newFileName = bizTag + "_" + newFileName;
            }
            // 文件后缀名
            String suffixName = file.getFileName().substring(file.getFileName().lastIndexOf("."));
            // 合成新的文件名
            newFileName = newFileName + suffixName;
            file.transferTo(new File(basePath + newFileName));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return newFileName;
    }
    /**
     * inoutDataPR#delImage
     *
     * @param parameter
     * @return
     */
    @Expose
    public String delImage(Map<String, Object> parameter) throws Exception {
        String fileName = (String) parameter.get("fileName");
        Date createTime = (Date) parameter.get("createTime");
        if (null == createTime) createTime = new Date();
        fileName = URLDecoder.decode(fileName, "UTF-8");
        File file = new File(fileService.getInoutFilePath(createTime), fileName);
        if (!file.exists()) {
            return "删除失败,系统未找到当前附件";
        }
        file.delete();
        return null;
    }
}