jiazx0107
2026-01-15 19f170a41e2200eed6a23402b00d7da20b38f42d
更新入库通知单逻辑
已添加5个文件
已修改16个文件
1811 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkNode.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn-Detail.view.xml 634 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut-Detail.view.xml 649 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/login.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.fzzy.igds.constant;
/**
 * @Desc:
 * @Author: Andy.jia
 * @Date: 2026/1/15
 */
public class InoutConstant {
    //自建通知单
    public static final String NOTICE_IN_TYPE_10 = "10";
    //监管通知单
    public static final String NOTICE_IN_TYPE_20 = "20";
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java
@@ -1,10 +1,13 @@
package com.fzzy.igds.constant;
import lombok.Getter;
/**
 * @Description è­¦å‘Šé€šçŸ¥ç±»åž‹:短信,语音
 * @Author CZT
 * @Date 2025/11/25 15:43
 */
@Getter
public enum NoticeType {
@@ -23,14 +26,6 @@
    NoticeType(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public String getName() {
        return name;
    }
    public static String getName(String code) {
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -3,19 +3,23 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fzzy.igds.constant.AuditStatus;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.ExportWordParam;
import com.fzzy.igds.data.NoticeDto;
import com.fzzy.igds.data.NoticeParam;
import com.fzzy.igds.constant.InoutConstant;
import com.fzzy.igds.data.*;
import com.fzzy.igds.domain.*;
import com.fzzy.igds.mapper.InoutNoticeInMapper;
import com.fzzy.igds.mapper.InoutNoticeOutMapper;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.domain.WorkOrderConf;
import com.fzzy.work.service.BizWorkService;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
@@ -42,7 +46,11 @@
    @Resource
    private PledgeContractService pledgeContractService;
    @Resource
    private BizWorkService workService;
    /*----------------------入库通知单信息-------------------------*/
    /**
     * åˆ†é¡µæŸ¥è¯¢æ•°æ®
     * @param page
@@ -127,59 +135,88 @@
     * @param data
     * @return
     */
    public String saveOrUpdateIn(InoutNoticeIn data) {
        //如果入库通知单类型为库区通知单,验证仓库是否是未解压得仓库,是则不允许保存
        //获取所有质押合同数据
        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
        if("10".equals(data.getType())){
            //在质押合同找到未解压,且质押仓库包含当前仓库的数据
            for (PledgeContract pledgeContract : pledgeContracts) {
                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
                        return "入库仓库未解压,无法保存!";
    @Transactional(rollbackFor = Exception.class)
    public BaseResp saveOrUpdateIn(InoutNoticeIn data) {
        //如果是库区自建通知单
        if (InoutConstant.NOTICE_IN_TYPE_10.equals(data.getType())) {
            //获取质押合同数据
            PledgeContract pledge = this.getPledgeByDepotId(data);
            if (null != pledge && pledge.getStatus().equals(Constant.YN_N)) {
                return BaseResp.error("当前仓库有未解压的质押合同,质押合同=" + pledge.getName());
                    }
                }
            }
        }
        //如果入库通知单类型为监管通知单
        if("20".equals(data.getType())){
        //如果质押通知单
        if (InoutConstant.NOTICE_IN_TYPE_20.equals(data.getType())) {
            //1.验证银行是否填写,未填写,则不允许保存
            if(StringUtils.isEmpty(data.getBankId())){
                return "监督银行不能为空!";
                return BaseResp.error("质押银行不能为空!");
            }
            //2.验证银行和仓库的对应关系是否正确,不正确则不允许保存
            //在质押合同找到未解压,且质押仓库包含当前仓库的 é“¶è¡Œ-仓库(质押合同关系)
            Map<String, PledgeContract> bankDepotMap = new HashMap<>();
            for (PledgeContract pledgeContract : pledgeContracts) {
                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
                        bankDepotMap.put(pledgeContract.getPledgeBank(), pledgeContract);
                    }
                }
            }
            //在map中寻找匹配银行的数据,如果没有匹配的数据,则不允许保存
            if(!bankDepotMap.containsKey(data.getBankId())){
                return "未找到对应的质押合同,请检查监督银行或者入库仓库填写是否正确!";
            PledgeContract pledge = this.getPledgeByDepotIdAndBankId(data);
            if (null == pledge) {
                return BaseResp.error("未获取到当前库区、仓库和银行之间的质押信息!");
            }
        }
        //修改和提交是两个逻辑判断
        if (null == data.getUpdateBy()) {
            return this.saveInAddStartWork(data);
        } else {
            data.setUpdateBy(ContextUtil.getLoginUserName());
            data.setUpdateTime(new Date());
            noticeInMapper.updateById(data);
            return BaseResp.success();
        }
    }
    private BaseResp saveInAddStartWork(InoutNoticeIn data) {
        //数据保存
            data.setUpdateBy(ContextUtil.getLoginUserName());
            data.setUpdateTime(new Date());
            data.setCreateBy(ContextUtil.getLoginUserName());
            data.setCreateTime(new Date());
            data.setAuditStatus(AuditStatus.STATUS_10.getCode());
            data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
            noticeInMapper.insert(data);
        //执行流程
        WorkOrderConf conf = workService.getConfByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
        //流程不启用
        if (null == conf || Constant.YN_N.equals(conf.getValTag())) {
            data.setAuditStatus(AuditStatus.STATUS_20.getCode());
            data.setAuditDate(data.getCreateTime());
        } else {
            data.setUpdateBy(ContextUtil.getLoginUserName());
            data.setUpdateTime(new Date());
            noticeInMapper.updateById(data);
            BaseResp resp = workService.startByNoticeIn(data, conf);
            log.info("---------启动工单流程------{}", resp);
        }
        return null;
        noticeInMapper.insert(data);
        return BaseResp.success();
    }
    /**
     * åˆ¤æ–­å½“前仓库是否在质押合同中未解压
     * @param data å½“前数据
     * @return true-在质押合同中未解压,false-在质押合同中已解压
     */
    private PledgeContract getPledgeByDepotId(InoutNoticeIn data) {
        IgdsBaseParam param = new IgdsBaseParam();
        param.setCompanyId(data.getCompanyId());
        param.setDeptId(data.getDeptId());
        param.setDepotId(data.getDepotId());
        return pledgeContractService.getByDepotId(param);
    }
    private PledgeContract getPledgeByDepotIdAndBankId(InoutNoticeIn data) {
        IgdsBaseParam param = new IgdsBaseParam();
        param.setCompanyId(data.getCompanyId());
        param.setDeptId(data.getDeptId());
        param.setDepotId(data.getDepotId());
        param.setBankId(data.getBankId());
        return pledgeContractService.getByDepotId(param);
    }
    /**
@@ -194,6 +231,7 @@
    }
    /*----------------------出库通知单信息-------------------------*/
    /**
     * åˆ†é¡µæŸ¥è¯¢æ•°æ®
     * @param page
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
@@ -35,7 +35,35 @@
        if (StringUtils.isNotEmpty(param.getBankId())) {
            queryWrapper.eq("pledge_bank", param.getBankId());
        }
        if (StringUtils.isNotEmpty(param.getDeptId())) {
            queryWrapper.eq("pledge_dept", param.getDeptId());
        }
        //根据仓库ID匹配
        if (StringUtils.isNotEmpty(param.getDepotId())) {
            queryWrapper.like("depot_ids", param.getDepotId());
        }
        queryWrapper.orderByDesc("update_time");
        return pledgeContractMapper.selectList(queryWrapper);
    }
    /**
     * æ ¹æ®ä»“库ID获取质押信息
     * @param param å‚æ•°
     * @return è´¨æŠ¼ä¿¡æ¯
     */
    public PledgeContract getByDepotId(IgdsBaseParam param) {
        if (null == param) return null;
        List<PledgeContract> list = listAll(param);
        if (null == list || list.isEmpty()) return null;
        return list.get(0);
    }
    public BaseResp addData(PledgeContract pledgeContract) {
@@ -60,4 +88,5 @@
        return pledgeContractMapper.deleteById(pledgeContract) > 0 ? BaseResp.success() : BaseResp.error("删除失败");
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkNode.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.fzzy.work.data;
/**
 * @Desc: å·¥å•节点枚举类
 * @Author: Andy.jia
 * @Date: 2025/12/18
 */
public enum WorkNode {
    NODE_START("node-start", "提交"),
    NODE1("node1", "库区领导审批"),
    NODE2("node2", "监管审批"),
    NODE3("node3", "银行审批"),
    NODE_END("node-end", "结束");
    private String code;
    private String msg;
    WorkNode(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public String getCode() {
        return code;
    }
    public String getMsg() {
        return msg;
    }
    public static String getMsg(String code) {
        if(null == code) return null;
        if(WorkNode.NODE_START.getCode().equals(code)) return WorkNode.NODE_START.getMsg();
        if(WorkNode.NODE1.getCode().equals(code)) return WorkNode.NODE1.getMsg();
        if(WorkNode.NODE2.getCode().equals(code)) return WorkNode.NODE2.getMsg();
        if(WorkNode.NODE3.getCode().equals(code)) return WorkNode.NODE3.getMsg();
        if(WorkNode.NODE_END.getCode().equals(code)) return WorkNode.NODE_END.getMsg();
        return code;
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java
@@ -46,9 +46,13 @@
    @TableField("biz_type")
    private String bizType;
    @Column(name = "category", columnDefinition = "varchar(20) COMMENT '工单分类'")
    @TableField("category")
    private String category;
//    @Column(name = "category", columnDefinition = "varchar(20) COMMENT '工单分类'")
//    @TableField("category")
//    private String category;
    @Column(name = "node", columnDefinition = "varchar(20) COMMENT '流程节点'")
    @TableField("node")
    private String node;
    @Column(name = "status", columnDefinition = "varchar(20) COMMENT '状态'")
    @TableField("status")
@@ -62,8 +66,8 @@
    @TableField("assignee_name")
    private String assigneeName;
    @Column(name = "recive_time")
    @TableField("recive_time")
    @Column(name = "receive_time")
    @TableField("receive_time")
    private Date receiveTime;
    @Column(name = "create_by_id", columnDefinition = "varchar(30) COMMENT '创建人'")
@@ -86,4 +90,8 @@
    @TableField("bank_id")
    private String bankId;
    @Column(name = "conf_id", columnDefinition = "varchar(40) COMMENT '流程配置ID'")
    @TableField("conf_id")
    private String confId;
}
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
@@ -38,13 +38,17 @@
    @TableField("order_id")
    private String orderId;
    @Column(name = "operator_id", columnDefinition = "varchar(20) COMMENT '操作人'")
    @TableField("operator_id")
    private String operatorId;
    @Column(name = "assignee_id", columnDefinition = "varchar(20) COMMENT '处理人'")
    @TableField("assignee_id")
    private String assigneeId;
    @Column(name = "operator_name", columnDefinition = "varchar(30) COMMENT '操作人'")
    @TableField("operator_name")
    private String operatorName;
    @Column(name = "assignee_name", columnDefinition = "varchar(20) COMMENT '处理人'")
    @TableField("assignee_name")
    private String assigneeName;
    @Column(name = "node", columnDefinition = "varchar(20) COMMENT '流程节点'")
    @TableField("node")
    private String node;
    @Column(name = "action", columnDefinition = "varchar(20) COMMENT '操作动作'")
    @TableField("action")
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
package com.fzzy.work.service;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.BaseResp;
import com.fzzy.igds.domain.InoutNoticeIn;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.work.data.OrderStatus;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.data.WorkNode;
import com.fzzy.work.domain.WorkOrder;
import com.fzzy.work.domain.WorkOrderConf;
import com.fzzy.work.domain.WorkOrderProcess;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
 * @Desc: å·¥å•业务接口
 * @Author: Andy.jia
 * @Date: 2026/1/15
 */
@Service
public class BizWorkService {
    @Resource
    private WorkOrderConfService confService;
    @Resource
    private WorkOrderService orderService;
    @Resource
    private WorkOrderProcessService orderProcessService;
    /**
     * èŽ·å–æµç¨‹é…ç½®ä¿¡æ¯
     * @param deptId åº“区ID
     * @param type  ä¸šåŠ¡ç±»åž‹
     * @return é…ç½®ä¿¡æ¯
     */
    public WorkOrderConf getConfByDeptId(String deptId, WorkBizType type) {
        return confService.getByDeptId(deptId, type);
    }
    /**
     *
     * æ ¹æ®å‡ºå…¥åº“通知单启动审批工单
     * @param data å‡ºå…¥åº“工单数据
     * @return å“åº”结果
     */
    public BaseResp startByNoticeIn(InoutNoticeIn data, WorkOrderConf conf) {
        if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
        if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("流程未启用");
        //创建工单
        WorkOrder work = new WorkOrder();
        work.setId(ContextUtil.generateOrderId("RKD"));
        work.setBizType(WorkBizType.TYPE_10.getCode());
        work.setBusinessId(data.getId());
        work.setBankId(data.getBankId());
        work.setBusinessUrl("com.fzzy.igds.InoutNoticeIn-Detail.d");
        work.setCreateTime(new Date());
        work.setDeptId(data.getDeptId());
        work.setCompanyId(data.getCompanyId());
        work.setUpdateTime(new Date());
        work.setTitle("入库通知单审批");
        work.setConfId(conf.getId());
        work.setStatus(OrderStatus.STATUS_30.getCode());
        work.setReceiveTime(new Date());
        String nextNode = this.getNextNode(WorkNode.NODE_START.getCode(), conf).getCode();
        work.setNode(nextNode);
        orderService.addData(work);
        //添加记录
        WorkOrderProcess process = new WorkOrderProcess();
        process.setId(ContextUtil.UUID());
        process.setAction("提交");
        process.setCreateTime(new Date());
        process.setOrderId(work.getId());
        process.setAssigneeName(work.getCreateBy());
        process.setAssigneeId(work.getCreateById());
        process.setNode(WorkNode.NODE_START.getCode());
        orderProcessService.addData(process);
        return BaseResp.success();
    }
    /**
     * æ ¹æ®å½“前节点获取下一个节点
     * @param curNode
     * @param conf
     * @return
     */
    private WorkNode getNextNode(String curNode, WorkOrderConf conf) {
        if (null == conf) return WorkNode.NODE_END;
        if (WorkNode.NODE_START.getCode().equals(curNode)) {
            if (Constant.YN_Y.equals(conf.getNodeVal1())) return WorkNode.NODE1;
            if (Constant.YN_Y.equals(conf.getNodeVal2())) return WorkNode.NODE2;
            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
        }
        if (WorkNode.NODE1.getCode().equals(curNode)) {
            if (Constant.YN_Y.equals(conf.getNodeVal2())) return WorkNode.NODE2;
            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
        }
        if (WorkNode.NODE2.getCode().equals(curNode)) {
            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
        }
        return WorkNode.NODE_END;
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java
@@ -1,8 +1,10 @@
package com.fzzy.work.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.BaseResp;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.domain.WorkOrderConf;
import com.fzzy.work.mapper.WorkOrderConfMapper;
import org.apache.commons.lang3.StringUtils;
@@ -45,12 +47,38 @@
        data.setUpdateBy(ContextUtil.getLoginUserName());
        data.setUpdateTime(new Date());
        if(null == data.getCompanyId()) data.setCompanyId(ContextUtil.getCompanyId());
        if(null == data.getNodeVal1()) data.setNodeVal1(Constant.YN_N);
        if(null == data.getNodeVal2()) data.setNodeVal2(Constant.YN_N);
        if(null == data.getNodeVal3()) data.setNodeVal3(Constant.YN_N);
        //如果节点都没有启用,默认设置为流程不启用
        if(Constant.YN_N.equals(data.getNodeVal1())
                && Constant.YN_N.equals(data.getNodeVal2())
                && Constant.YN_N.equals(data.getNodeVal3())){
            data.setValTag(Constant.YN_N);
        }
        mapper.insert(data);
    }
    public void updateConf(WorkOrderConf data) {
        data.setUpdateBy(ContextUtil.getLoginUserName());
        data.setUpdateTime(new Date());
        if(null == data.getNodeVal1()) data.setNodeVal1(Constant.YN_N);
        if(null == data.getNodeVal2()) data.setNodeVal2(Constant.YN_N);
        if(null == data.getNodeVal3()) data.setNodeVal3(Constant.YN_N);
        //如果节点都没有启用,默认设置为流程不启用
        if(Constant.YN_N.equals(data.getNodeVal1())
                && Constant.YN_N.equals(data.getNodeVal2())
                && Constant.YN_N.equals(data.getNodeVal3())){
            data.setValTag(Constant.YN_N);
        }
        mapper.updateById(data);
    }
@@ -58,4 +86,16 @@
        if (null == data.getId()) return BaseResp.success();
        return mapper.deleteById(data.getId()) > 0 ? BaseResp.success() : BaseResp.error("删除失败");
    }
    public WorkOrderConf getByDeptId(String deptId, WorkBizType type) {
        QueryWrapper<WorkOrderConf> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("dept_id", deptId);
        queryWrapper.eq("biz_type", type.getCode());
        List<WorkOrderConf> list = mapper.selectList(queryWrapper);
        if (null == list) return null;
        return list.get(0);
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java
@@ -1,6 +1,7 @@
package com.fzzy.work.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.work.domain.WorkOrderProcess;
import com.fzzy.work.mapper.WorkOrderProcessMapper;
import org.apache.commons.lang3.StringUtils;
@@ -29,4 +30,9 @@
        queryWrapper.orderByDesc("create_time");
        return mapper.selectList(queryWrapper);
    }
    public void addData(WorkOrderProcess process) {
        if(null == process.getId()) process.setId(ContextUtil.UUID());
        mapper.insert(process);
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -11,10 +11,12 @@
import com.fzzy.work.mapper.WorkOrderMapper;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
@@ -29,6 +31,23 @@
    @Resource
    private WorkOrderMapper workOrderMapper;
    public void addData(WorkOrder data) {
        if(null == data.getId()) data.setId(ContextUtil.generateOrderId("GD"));
        if(null == data.getCompanyId()) data.setCompanyId(ContextUtil.getCompanyId());
        if(null == data.getCreateBy()){
            SysUser user = ContextUtil.getLoginUser();
            data.setCreateBy(user.getUserName());
            data.setCreateById(user.getLoginName());
        }
        data.setUpdateTime(new Date());
        workOrderMapper.insert(data);
    }
    public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java
@@ -5,7 +5,6 @@
import com.bstek.dorado.annotation.Expose;
import com.fzzy.igds.domain.DepotConf;
import com.fzzy.igds.service.DepotConfService;
import com.fzzy.igds.utils.ContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
@@ -3,9 +3,7 @@
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.domain.Depot;
import com.fzzy.igds.domain.PledgeContract;
import com.fzzy.igds.service.DepotService;
import com.fzzy.igds.service.PledgeContractService;
import com.fzzy.igds.utils.ContextUtil;
@@ -16,7 +14,6 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java
@@ -7,7 +7,6 @@
import com.fzzy.igds.constant.FoodVariety;
import com.fzzy.igds.data.GrainDataReport;
import com.fzzy.igds.domain.DepotConf;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.domain.Grain;
import com.fzzy.igds.service.CoreDeptService;
import com.fzzy.igds.service.DepotConfService;
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn-Detail.view.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,634 @@
<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
  <Arguments/>
  <Context/>
  <Model>
    <DataType name="dtMain">
      <ClientEvent name="onDataChange">&#xD;
&#xD;
&#xD;
</ClientEvent>
      <Property name="creationType">com.fzzy.igds.domain.InoutNoticeIn</Property>
      <PropertyDef name="id">
        <Property></Property>
        <Property name="label">单据号</Property>
      </PropertyDef>
      <PropertyDef name="companyId">
        <Property></Property>
        <Property name="label">组织编码</Property>
      </PropertyDef>
      <PropertyDef name="deptId">
        <Property></Property>
        <Property name="label">所属分库</Property>
        <Property name="mapping">
          <Property name="keyProperty">id</Property>
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
          <Property name="valueProperty">kqmc</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="name">
        <Property></Property>
        <Property name="label">单据名称</Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="type">
        <Property></Property>
        <Property name="label">单据类型</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">自用通知单</Property>
                <Property name="code">10</Property>
              </Entity>
              <Entity>
                <Property name="name">监管通知单</Property>
                <Property name="code">20</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="contract">
        <Property></Property>
        <Property name="label">关联合同</Property>
        <Property name="required">false</Property>
      </PropertyDef>
      <PropertyDef name="depotId">
        <Property></Property>
        <Property name="label">入库仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getData&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="customerName">
        <Property></Property>
        <Property name="label">发货客户</Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="unitName">
        <Property></Property>
        <Property name="label">收货单位</Property>
        <Property name="required">false</Property>
      </PropertyDef>
      <PropertyDef name="foodVariety">
        <Property></Property>
        <Property name="label">粮食品种</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="year">
        <Property></Property>
        <Property name="label">粮食年份</Property>
      </PropertyDef>
      <PropertyDef name="targetNumber">
        <Property name="dataType">Double</Property>
        <Property name="displayFormat">#0.0 KG</Property>
        <Property name="required">true</Property>
        <Property name="label">计划数量</Property>
      </PropertyDef>
      <PropertyDef name="completeNumber">
        <Property name="dataType">Double</Property>
        <Property name="label">完成数量</Property>
        <Property name="displayFormat">#0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="auditStatus">
        <Property></Property>
        <Property name="label">审核状态</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerStatusType&quot;).getResult()}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="auditUser">
        <Property></Property>
        <Property name="label">审核人</Property>
      </PropertyDef>
      <PropertyDef name="auditDate">
        <Property name="dataType">DateTime</Property>
        <Property name="label">审批时间</Property>
      </PropertyDef>
      <PropertyDef name="completeStatus">
        <Property></Property>
        <Property name="label">完成状态</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">未完成</Property>
                <Property name="code">NONE</Property>
              </Entity>
              <Entity>
                <Property name="name">已完成</Property>
                <Property name="code">COMPLETE</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="completeTime">
        <Property name="dataType">Date</Property>
        <Property name="label">完成时间</Property>
      </PropertyDef>
      <PropertyDef name="remark">
        <Property></Property>
        <Property name="label">备注信息</Property>
      </PropertyDef>
      <PropertyDef name="createTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">制单时间</Property>
      </PropertyDef>
      <PropertyDef name="createBy">
        <Property></Property>
        <Property name="label">制单人</Property>
      </PropertyDef>
      <PropertyDef name="updateTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">更新时间</Property>
      </PropertyDef>
      <PropertyDef name="updateBy">
        <Property></Property>
        <Property name="label">更新人</Property>
      </PropertyDef>
      <PropertyDef name="bankId">
        <Property></Property>
        <Property name="label">监督银行</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;bankPR#listAll&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="visible">true</Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:10">
    <ClientEvent name="onReady">var deptId = window.parent.deptId;//父页面中的分库编码&#xD;
var TYPE = &quot;NOTICE_IN&quot;;&#xD;
query = function(){&#xD;
    view.get(&quot;#dsQuery&quot;).set(&quot;parameter&quot;,{deptId:deptId}).flushAsync();&#xD;
};&#xD;
query();&#xD;
      &#xD;
//新增&#xD;
add = function(){&#xD;
    view.get(&quot;#ajaxInitAdd&quot;).execute(function(data){&#xD;
        view.get(&quot;#dsMain&quot;).insert(data);&#xD;
        view.get(&quot;#dialogMain&quot;).show();&#xD;
    });&#xD;
};</ClientEvent>
    <Property name="packages">font-awesome,css-common</Property>
    <DataSet id="dsMain">
      <Property name="dataType">[dtMain]</Property>
      <Property name="dataProvider">inoutNoticePR#pageQueryIn</Property>
      <Property name="pageSize">15</Property>
      <Property name="loadMode">lazy</Property>
    </DataSet>
    <DataSet id="dsQuery">
      <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
      <Property name="loadMode">manual</Property>
      <Property name="dataType">dtNoticeParam</Property>
    </DataSet>
    <DataSet id="dsDepotList">
      <Property name="dataProvider">depotPR#getData</Property>
      <Property name="userData">仓库列表下拉框</Property>
      <Property name="loadMode">manual</Property>
      <Property name="dataType">[dtDepot]</Property>
    </DataSet>
    <Container>
      <Property name="className">c-param</Property>
      <AutoForm>
        <Property name="cols">*,*,*,*,90,90</Property>
        <Property name="dataSet">dsQuery</Property>
        <Property name="labelAlign">right</Property>
        <Property name="labelWidth">100</Property>
        <AutoFormElement>
          <Property name="name">depotId</Property>
          <Property name="property">depotId</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">customerName</Property>
          <Property name="property">customerName</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">foodVariety</Property>
          <Property name="property">foodVariety</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">completeStatus</Property>
          <Property name="property">completeStatus</Property>
          <Editor/>
        </AutoFormElement>
        <Button>
          <ClientEvent name="onClick">var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
            if(data){&#xD;
            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data).flushAsync();&#xD;
            }else{&#xD;
            view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
            }</ClientEvent>
          <Property name="caption">搜索</Property>
          <Property name="iconClass">fa fa-search</Property>
          <Property name="exClassName">btn-q1</Property>
        </Button>
        <Button>
          <ClientEvent name="onClick">view.get(&quot;#dsQuery&quot;).flushAsync();</ClientEvent>
          <Property name="caption">重置</Property>
          <Property name="exClassName">btn-q2</Property>
          <Property name="iconClass">fa fa-refresh</Property>
        </Button>
      </AutoForm>
    </Container>
    <Container>
      <Property name="className">c-data</Property>
      <ToolBar>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">add();</ClientEvent>
          <Property name="caption">新增</Property>
          <Property name="exClassName">btn1</Property>
          <Property name="width">100</Property>
          <Property name="iconClass">fa fa-plus</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">&#xD;
            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
            if(select){&#xD;
            view.get(&quot;#dialogMain&quot;).show();&#xD;
            }else{&#xD;
            $notify(&quot;请选择需要修改的数据……&quot;);&#xD;
            }</ClientEvent>
          <Property name="caption">修改</Property>
          <Property name="exClassName">btn2</Property>
          <Property name="width">100</Property>
          <Property name="iconClass">fa fa-pencil-square-o</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">&#xD;
            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
            if(select){&#xD;
            view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
            select.remove();&#xD;
            });&#xD;
            }else{&#xD;
            $notify(&quot;请选择需要删除的数据……&quot;);&#xD;
            }</ClientEvent>
          <Property name="caption">删除</Property>
          <Property name="exClassName">btn3</Property>
          <Property name="width">100</Property>
          <Property name="iconClass">fa fa-times</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">view.get(&quot;#recalculate&quot;).execute(function(result){&#xD;
            if(result == 'success'){&#xD;
            $notify(&quot;数据更新完成!!&quot;);&#xD;
            &#xD;
            var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data.toJSON()).flushAsync();&#xD;
            }else{&#xD;
            $notify(&quot;数据更新失败!!&quot;);&#xD;
            }&#xD;
            });</ClientEvent>
          <Property name="caption">实时核算</Property>
          <Property name="exClassName">btn4</Property>
          <Property name="iconClass">fa fa-refresh</Property>
          <Property name="width">120</Property>
          <Property name="tip">完成量默认统计到昨天,查看实时完成量请点击“实时核算”按钮</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">&#xD;
var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
if(select){&#xD;
    var bizId = select.get(&quot;id&quot;);&#xD;
    var url = &quot;/export/download-word?bizId=&quot;+bizId + &quot;&amp;entityName=InoutNoticeIn&quot;;&#xD;
    window.open(url);&#xD;
}else{&#xD;
    $notify(&quot;请选择需要导出的通知单……&quot;);&#xD;
}</ClientEvent>
          <Property name="caption">导出Word</Property>
          <Property name="exClassName">btn2</Property>
          <Property name="width">120</Property>
          <Property name="iconClass">fa fa-print</Property>
        </ToolBarButton>
        <Fill/>
      </ToolBar>
      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
        <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;,arg.data);</ClientEvent>
        <Property name="dataSet">dsMain</Property>
        <Property name="readOnly">true</Property>
        <Property name="selectionMode">singleRow</Property>
        <Property name="readOnly">true</Property>
        <RowSelectorColumn/>
        <RowNumColumn>
          <Property name="width">50</Property>
          <Property name="caption">序号</Property>
        </RowNumColumn>
        <DataColumn name="id">
          <Property name="property">id</Property>
          <Property name="width">200</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">deptId</Property>
          <Property name="align">left</Property>
          <Property name="name">deptId</Property>
        </DataColumn>
        <DataColumn name="name">
          <Property name="property">name</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn name="customerName">
          <Property name="property">customerName</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="depotId">
          <Property name="property">depotId</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn name="foodVariety">
          <Property name="property">foodVariety</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">targetNumber</Property>
          <Property name="name">targetNumber</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">completeStatus</Property>
          <Property name="name">completeStatus</Property>
          <Property name="align">center</Property>
          <Property name="width">100</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">updateBy</Property>
          <Property name="align">center</Property>
          <Property name="name">updateBy</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">createTime</Property>
          <Property name="align">center</Property>
          <Property name="name">createTime</Property>
          <Property name="width">160</Property>
        </DataColumn>
      </DataGrid>
      <ToolBar layoutConstraint="bottom">
        <Fill/>
        <DataPilot layoutConstraint="right">
          <Property name="itemCodes">pageSize,pages</Property>
          <Property name="dataSet">dsMain</Property>
        </DataPilot>
      </ToolBar>
    </Container>
    <Dialog id="dialogMain" layout="regionPadding:8">
      <Property name="closeable">false</Property>
      <Property name="caption">入库通知单</Property>
      <Property name="width">85%</Property>
      <Property name="iconClass">fa fa-tasks</Property>
      <Buttons>
        <Button id="btnOk">
          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
    if(result.code != '200'){&#xD;
        $alert(result.message);&#xD;
        return;&#xD;
    }&#xD;
    $alert('数据执行成功!');&#xD;
    self.get(&quot;parent&quot;).hide();&#xD;
});</ClientEvent>
          <Property name="caption">保存</Property>
          <Property name="iconClass">fa fa-check-circle</Property>
          <Property name="exClassName">btn1</Property>
          <Property name="width">120</Property>
        </Button>
        <Button>
          <ClientEvent name="onClick">view.get(&quot;#dsMain.data:#&quot;).cancel();&#xD;
            self.get(&quot;parent&quot;).hide();</ClientEvent>
          <Property name="caption">取消</Property>
          <Property name="exClassName">btn3</Property>
          <Property name="iconClass">fa fa-times-circle</Property>
          <Property name="width">120</Property>
        </Button>
      </Buttons>
      <Children>
        <Container>
          <AutoForm layoutConstraint="top ">
            <Property name="dataSet">dsMain</Property>
            <Property name="showHint">false</Property>
            <Property name="cols">210,*,210</Property>
            <Control/>
            <AutoFormElement>
              <Property name="name">name</Property>
              <Property name="property">name</Property>
              <Property name="editorType">Label</Property>
              <Property name="showLabel">false</Property>
              <Property name="showHint">false</Property>
              <Property name="className">f-title</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">id</Property>
              <Property name="property">id</Property>
              <Property name="editorType">Label</Property>
              <Property name="showHint">false</Property>
              <Property name="labelAlign">right</Property>
              <Property name="showLabel">false</Property>
              <Editor/>
            </AutoFormElement>
          </AutoForm>
          <AutoForm>
            <Property name="dataSet">dsMain</Property>
            <Property name="cols">*,*,*</Property>
            <Property name="labelAlign">right</Property>
            <Property name="labelSeparator">:</Property>
            <Property name="labelWidth">120</Property>
            <Property name="showHint">true</Property>
            <AutoFormElement>
              <Property name="name">name</Property>
              <Property name="property">name</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">type</Property>
              <Property name="property">type</Property>
              <Property name="trigger">autoMappingDropDown1</Property>
              <Property name="editorType">RadioGroup</Property>
              <Property name="showHint">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement id="formItemBank">
              <Property name="name">bankId</Property>
              <Property name="property">bankId</Property>
              <Property name="hideMode">visibility</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">deptId</Property>
              <Property name="property">deptId</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">depotId</Property>
              <Property name="property">depotId</Property>
              <Property name="trigger">dsDepotDropDown</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">foodVariety</Property>
              <Property name="property">foodVariety</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">year</Property>
              <Property name="property">year</Property>
              <Property name="trigger">defaultYearDropDown</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement id="formItemCustomerName" layoutConstraint="colSpan:2">
              <Property name="name">customerName</Property>
              <Property name="property">customerName</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">targetNumber</Property>
              <Property name="property">targetNumber</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createBy</Property>
              <Property name="property">createBy</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createTime</Property>
              <Property name="property">createTime</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:3">
              <Property name="name">remark</Property>
              <Property name="property">remark</Property>
              <Property name="editorType">TextArea</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">completeNumber</Property>
              <Property name="property">completeNumber</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">completeStatus</Property>
              <Property name="property">completeStatus</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">completeTime</Property>
              <Property name="property">completeTime</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">contract</Property>
              <Property name="property">contract</Property>
              <Editor/>
            </AutoFormElement>
            <Label>
              <Property name="style">
                <Property name="color">blue</Property>
              </Property>
              <Property name="text">注:监管通知单,可填写质押合同名称</Property>
            </Label>
            <AutoFormElement>
              <Property name="name">auditStatus</Property>
              <Property name="property">auditStatus</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">auditUser</Property>
              <Property name="property">auditUser</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">auditDate</Property>
              <Property name="property">auditDate</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <HtmlContainer layoutConstraint="colSpan:3">
              <Property name="content">1.入库通知单作为入库作业的前置条件,必须配置,否则无法进行入库作业。&lt;br>&#xD;
2.单据类型=库区通知单,表示库区自己作业业务,不受监管管理。&lt;br>&#xD;
3.单据类型=质押监管通知单,单据必须填写监督银行。</Property>
              <Property name="exClassName">h-tip</Property>
              <Property name="contentOverflow">hidden</Property>
            </HtmlContainer>
          </AutoForm>
        </Container>
      </Children>
      <Tools/>
    </Dialog>
    <DataSetDropDown id="dsDepotDropDown">
      <ClientEvent name="onOpen">&#xD;
var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
if(!entity){&#xD;
    $alert(&quot;请先选择所属分库&quot;);&#xD;
}else{&#xD;
    var deptId = entity.get(&quot;deptId&quot;);&#xD;
    if(!deptId){&#xD;
        $alert(&quot;请先选择所属分库&quot;);&#xD;
    }else{&#xD;
        view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;deptId&quot;)).flushAsync();&#xD;
    }&#xD;
}</ClientEvent>
      <Property name="dataSet">dsDepotList</Property>
      <Property name="height">450</Property>
      <Property name="autoOpen">true</Property>
      <Property name="assignmentMap">depotId=id</Property>
      <Property name="width">400</Property>
      <DataColumn>
        <Property name="align">center</Property>
        <Property name="name">name</Property>
        <Property name="property">name</Property>
        <Editor/>
      </DataColumn>
    </DataSetDropDown>
    <UpdateAction id="updateSave">
      <Property name="dataResolver">inoutNoticePR#saveIn</Property>
      <UpdateItem>
        <Property name="dataPath">[#current]</Property>
        <Property name="dataSet">dsMain</Property>
      </UpdateItem>
    </UpdateAction>
    <AjaxAction id="ajaxDel">
      <Property name="service">inoutNoticePR#delDataIn</Property>
      <Property name="confirmMessage">确定要执行删除么?</Property>
    </AjaxAction>
    <AjaxAction id="ajaxInitAdd">
      <Property name="service">inoutNoticePR#initAddIn</Property>
    </AjaxAction>
    <AjaxAction id="recalculate">
      <Property name="service">inoutNoticePR#updateSumNoticeIn</Property>
    </AjaxAction>
  </View>
</ViewConfig>
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
@@ -38,11 +38,11 @@
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">库区自建通知单</Property>
                <Property name="name">自用通知单</Property>
                <Property name="code">10</Property>
              </Entity>
              <Entity>
                <Property name="name">质押监管通知单</Property>
                <Property name="name">监管通知单</Property>
                <Property name="code">20</Property>
              </Entity>
            </Collection>
@@ -403,21 +403,17 @@
      <Property name="closeable">false</Property>
      <Property name="caption">入库通知单</Property>
      <Property name="width">85%</Property>
      <Property name="height">90%</Property>
      <Property name="iconClass">fa fa-tasks</Property>
      <Buttons>
        <Button id="btnOk">
          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
    if(result){&#xD;
        $alert(result);&#xD;
    if(result.code != '200'){&#xD;
        $alert(result.message);&#xD;
        return;&#xD;
    }&#xD;
    $notify(&quot;数据执行完成!!&quot;);&#xD;
    $alert('数据执行成功!');&#xD;
    self.get(&quot;parent&quot;).hide();&#xD;
});&#xD;
&#xD;
&#xD;
</ClientEvent>
});</ClientEvent>
          <Property name="caption">保存</Property>
          <Property name="iconClass">fa fa-check-circle</Property>
          <Property name="exClassName">btn1</Property>
@@ -464,7 +460,8 @@
            <Property name="labelAlign">right</Property>
            <Property name="labelSeparator">:</Property>
            <Property name="labelWidth">120</Property>
            <AutoFormElement layoutConstraint="colSpan:2">
            <Property name="showHint">true</Property>
            <AutoFormElement>
              <Property name="name">name</Property>
              <Property name="property">name</Property>
              <Editor/>
@@ -473,12 +470,15 @@
              <Property name="name">type</Property>
              <Property name="property">type</Property>
              <Property name="trigger">autoMappingDropDown1</Property>
              <Property name="editorType">RadioGroup</Property>
              <Property name="showHint">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement id="formItemBank">
              <Property name="name">bankId</Property>
              <Property name="property">bankId</Property>
              <Property name="hideMode">visibility</Property>
              <Property name="trigger">autoMappingDropDown2</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
@@ -509,14 +509,26 @@
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">unitName</Property>
              <Property name="property">unitName</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">targetNumber</Property>
              <Property name="property">targetNumber</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createBy</Property>
              <Property name="property">createBy</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createTime</Property>
              <Property name="property">createTime</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:3">
              <Property name="name">remark</Property>
              <Property name="property">remark</Property>
              <Property name="editorType">TextArea</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
@@ -536,17 +548,6 @@
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createBy</Property>
              <Property name="property">createBy</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">auditStatus</Property>
              <Property name="property">auditStatus</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">contract</Property>
              <Property name="property">contract</Property>
@@ -558,15 +559,10 @@
              </Property>
              <Property name="text">注:监管通知单,可填写质押合同名称</Property>
            </Label>
            <AutoFormElement layoutConstraint="colSpan:3">
              <Property name="name">remark</Property>
              <Property name="property">remark</Property>
              <Property name="editorType">TextArea</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createTime</Property>
              <Property name="property">createTime</Property>
              <Property name="name">auditStatus</Property>
              <Property name="property">auditStatus</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut-Detail.view.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,649 @@
<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
  <Arguments/>
  <Context/>
  <Model>
    <DataType name="dtMain">
      <Property name="creationType">com.fzzy.igds.domain.InoutNoticeOut</Property>
      <PropertyDef name="id">
        <Property></Property>
        <Property name="label">通知单号</Property>
      </PropertyDef>
      <PropertyDef name="deptId">
        <Property></Property>
        <Property name="label">所属分库</Property>
        <Property name="mapping">
          <Property name="keyProperty">id</Property>
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
          <Property name="valueProperty">kqmc</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="companyId">
        <Property></Property>
        <Property name="label">组织编码</Property>
      </PropertyDef>
      <PropertyDef name="name">
        <Property></Property>
        <Property name="label">单据名称</Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="type">
        <Property></Property>
        <Property name="label">单据类型</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">库区通知单</Property>
                <Property name="code">10</Property>
              </Entity>
              <Entity>
                <Property name="name">监管通知单</Property>
                <Property name="code">20</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="contract">
        <Property></Property>
        <Property name="label">关联合同</Property>
        <Property name="required">false</Property>
      </PropertyDef>
      <PropertyDef name="depotId">
        <Property></Property>
        <Property name="label">出库仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getData&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="customerName">
        <Property></Property>
        <Property name="label">收货客户</Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="unitName">
        <Property></Property>
        <Property name="label">发货单位</Property>
        <Property name="required">false</Property>
      </PropertyDef>
      <PropertyDef name="foodVariety">
        <Property></Property>
        <Property name="label">粮食品种</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="year">
        <Property></Property>
        <Property name="label">粮食年份</Property>
      </PropertyDef>
      <PropertyDef name="targetNumber">
        <Property name="dataType">double</Property>
        <Property name="displayFormat">#0.0 KG</Property>
        <Property name="required">true</Property>
        <Property name="label">计划数量</Property>
      </PropertyDef>
      <PropertyDef name="completeNumber">
        <Property name="dataType">double</Property>
        <Property name="label">完成数量</Property>
        <Property name="displayFormat">#0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="auditStatus">
        <Property></Property>
        <Property name="label">审核状态</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">监管审核</Property>
                <Property name="code">10</Property>
              </Entity>
              <Entity>
                <Property name="name">银行审核</Property>
                <Property name="code">20</Property>
              </Entity>
              <Entity>
                <Property name="name">已审核</Property>
                <Property name="code">30</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="auditUser">
        <Property></Property>
        <Property name="label">审核人</Property>
      </PropertyDef>
      <PropertyDef name="auditDate">
        <Property name="dataType">DateTime</Property>
        <Property name="label">审批时间</Property>
      </PropertyDef>
      <PropertyDef name="completeStatus">
        <Property></Property>
        <Property name="label">完成状态</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">未完成</Property>
                <Property name="code">NONE</Property>
              </Entity>
              <Entity>
                <Property name="name">已完成</Property>
                <Property name="code">COMPLETE</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="completeTime">
        <Property name="dataType">Date</Property>
        <Property name="label">完成时间</Property>
      </PropertyDef>
      <PropertyDef name="remark">
        <Property></Property>
        <Property name="label">备注信息</Property>
      </PropertyDef>
      <PropertyDef name="createTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">制单时间</Property>
      </PropertyDef>
      <PropertyDef name="createBy">
        <Property></Property>
        <Property name="label">制单人</Property>
      </PropertyDef>
      <PropertyDef name="updateTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">更新时间</Property>
      </PropertyDef>
      <PropertyDef name="updateBy">
        <Property></Property>
        <Property name="label">更新人</Property>
      </PropertyDef>
      <PropertyDef name="bankId">
        <Property></Property>
        <Property name="label">监督银行</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;bankPR#listAll&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="visible">true</Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:10">
    <ClientEvent name="onReady">var deptId = window.parent.deptId;//父页面中的分库编码&#xD;
var TYPE = &quot;NOTICE_OUT&quot;;&#xD;
query = function(){&#xD;
    view.get(&quot;#dsQuery&quot;).set(&quot;parameter&quot;,{deptId:deptId}).flushAsync();&#xD;
};&#xD;
query();&#xD;
      &#xD;
//新增&#xD;
add = function(){&#xD;
    view.get(&quot;#ajaxInitAdd&quot;).execute(function(data){&#xD;
        view.get(&quot;#dsMain&quot;).insert(data);&#xD;
        view.get(&quot;#dialogMain&quot;).show();&#xD;
    });&#xD;
};&#xD;
&#xD;</ClientEvent>
    <Property name="packages">font-awesome,css-common</Property>
    <DataSet id="dsMain">
      <Property name="dataType">[dtMain]</Property>
      <Property name="dataProvider">inoutNoticePR#pageQueryOut</Property>
      <Property name="pageSize">15</Property>
      <Property name="loadMode">lazy</Property>
    </DataSet>
    <DataSet id="dsQuery">
      <Property name="dataType">dtNoticeParam</Property>
      <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
      <Property name="loadMode">manual</Property>
    </DataSet>
    <DataSet id="dsDepotList">
      <Property name="dataProvider">depotPR#getData</Property>
      <Property name="userData">仓库列表下拉框</Property>
      <Property name="loadMode">manual</Property>
      <Property name="dataType">[dtDepot]</Property>
    </DataSet>
    <Container>
      <Property name="className">c-param</Property>
      <AutoForm>
        <Property name="cols">*,*,*,*,90,90</Property>
        <Property name="dataSet">dsQuery</Property>
        <Property name="labelAlign">right</Property>
        <Property name="labelWidth">100</Property>
        <AutoFormElement>
          <Property name="name">depotId</Property>
          <Property name="property">depotId</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">customerName</Property>
          <Property name="property">customerName</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">foodVariety</Property>
          <Property name="property">foodVariety</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">completeStatus</Property>
          <Property name="property">completeStatus</Property>
          <Editor/>
        </AutoFormElement>
        <Button>
          <ClientEvent name="onClick">var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
            if(data){&#xD;
            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data.toJSON()).flushAsync();&#xD;
            }else{&#xD;
            view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
            }</ClientEvent>
          <Property name="caption">搜索</Property>
          <Property name="iconClass">fa fa-search</Property>
          <Property name="exClassName">btn-q1</Property>
        </Button>
        <Button>
          <ClientEvent name="onClick">view.get(&quot;#dsQuery&quot;).flushAsync();</ClientEvent>
          <Property name="caption">重置</Property>
          <Property name="exClassName">btn-q2</Property>
          <Property name="iconClass">fa fa-refresh</Property>
        </Button>
      </AutoForm>
    </Container>
    <Container>
      <Property name="className">c-data</Property>
      <ToolBar>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">add();&#xD;</ClientEvent>
          <Property name="caption">新增</Property>
          <Property name="exClassName">btn1</Property>
          <Property name="width">100</Property>
          <Property name="iconClass">fa fa-plus</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">&#xD;
            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
            if(select){&#xD;
            view.get(&quot;#dialogMain&quot;).show();&#xD;
            }else{&#xD;
            $notify(&quot;请选择需要修改的数据……&quot;);&#xD;
            }</ClientEvent>
          <Property name="caption">修改</Property>
          <Property name="exClassName">btn2</Property>
          <Property name="width">100</Property>
          <Property name="iconClass">fa fa-pencil-square-o</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">&#xD;
            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
            if(select){&#xD;
            view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
            select.remove();&#xD;
            });&#xD;
            }else{&#xD;
            $notify(&quot;请选择需要删除的仓库……&quot;);&#xD;
            }&#xD;
          </ClientEvent>
          <Property name="caption">删除</Property>
          <Property name="exClassName">btn3</Property>
          <Property name="width">100</Property>
          <Property name="iconClass">fa fa-times</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">view.get(&quot;#recalculate&quot;).execute(function(result){&#xD;
            if(result == 'success'){&#xD;
            $notify(&quot;数据更新完成!!&quot;);&#xD;
            &#xD;
            var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data.toJSON()).flushAsync();&#xD;
            }else{&#xD;
            $notify(&quot;数据更新失败!!&quot;);&#xD;
            }&#xD;
            });</ClientEvent>
          <Property name="caption">实时核算</Property>
          <Property name="exClassName">btn4</Property>
          <Property name="iconClass">fa fa-refresh</Property>
          <Property name="width">100</Property>
          <Property name="tip">完成量默认统计到昨天,查看实时完成量请点击“实时核算”按钮</Property>
        </ToolBarButton>
        <ToolBarButton layoutConstraint="left">
          <ClientEvent name="onClick">&#xD;
            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
            if(select){&#xD;
            var bizId = select.get(&quot;id&quot;);&#xD;
            var url = &quot;/export/download-word?bizId=&quot;+bizId + &quot;&amp;entityName=InoutNoticeOut&quot;;&#xD;
            window.open(url);&#xD;
            }else{&#xD;
            $notify(&quot;请选择需要导出的通知单……&quot;);&#xD;
            }</ClientEvent>
          <Property name="caption">导出Word</Property>
          <Property name="exClassName">btn2</Property>
          <Property name="width">120</Property>
          <Property name="iconClass">fa fa-print</Property>
        </ToolBarButton>
        <Fill/>
      </ToolBar>
      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
        <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;,arg.data);</ClientEvent>
        <Property name="dataSet">dsMain</Property>
        <Property name="readOnly">true</Property>
        <Property name="selectionMode">singleRow</Property>
        <Property name="readOnly">true</Property>
        <RowSelectorColumn/>
        <RowNumColumn>
          <Property name="width">50</Property>
          <Property name="caption">序号</Property>
        </RowNumColumn>
        <DataColumn name="id">
          <Property name="property">id</Property>
          <Property name="width">200</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">deptId</Property>
          <Property name="align">left</Property>
          <Property name="name">deptId</Property>
        </DataColumn>
        <DataColumn name="name">
          <Property name="property">name</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn name="customerName">
          <Property name="property">customerName</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="depotId">
          <Property name="property">depotId</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn name="foodVariety">
          <Property name="property">foodVariety</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">targetNumber</Property>
          <Property name="name">targetNumber</Property>
          <Property name="align">center</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">completeStatus</Property>
          <Property name="name">completeStatus</Property>
          <Property name="align">center</Property>
          <Property name="width">100</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">updateBy</Property>
          <Property name="align">center</Property>
          <Property name="name">updateBy</Property>
          <Property name="width">120</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">createTime</Property>
          <Property name="align">center</Property>
          <Property name="name">createTime</Property>
          <Property name="width">160</Property>
        </DataColumn>
      </DataGrid>
      <ToolBar layoutConstraint="bottom">
        <Fill/>
        <DataPilot layoutConstraint="right">
          <Property name="itemCodes">pageSize,pages</Property>
          <Property name="dataSet">dsMain</Property>
        </DataPilot>
      </ToolBar>
    </Container>
    <Dialog id="dialogMain">
      <Property name="closeable">false</Property>
      <Property name="caption">出库通知单</Property>
      <Property name="width">85%</Property>
      <Property name="height">90%</Property>
      <Property name="iconClass">fa fa-tasks</Property>
      <Buttons>
        <Button id="btnOk">
          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
            if(result){&#xD;
            $alert(result);&#xD;
            return;&#xD;
            }&#xD;
            $notify(&quot;数据执行完成!!&quot;);&#xD;
            self.get(&quot;parent&quot;).hide();&#xD;
            });</ClientEvent>
          <Property name="caption">保存</Property>
          <Property name="iconClass">fa fa-check-circle</Property>
          <Property name="exClassName">btn1</Property>
          <Property name="width">120</Property>
        </Button>
        <Button>
          <ClientEvent name="onClick">view.get(&quot;#dsMain.data:#&quot;).cancel();&#xD;
            self.get(&quot;parent&quot;).hide();</ClientEvent>
          <Property name="caption">取消</Property>
          <Property name="exClassName">btn3</Property>
          <Property name="iconClass">fa fa-times-circle</Property>
          <Property name="width">120</Property>
        </Button>
      </Buttons>
      <Children>
        <Container>
          <AutoForm layoutConstraint="top ">
            <Property name="dataSet">dsMain</Property>
            <Property name="showHint">false</Property>
            <Property name="cols">210,*,210</Property>
            <Control/>
            <AutoFormElement>
              <Property name="name">name</Property>
              <Property name="property">name</Property>
              <Property name="editorType">Label</Property>
              <Property name="showLabel">false</Property>
              <Property name="showHint">false</Property>
              <Property name="className">f-title</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">id</Property>
              <Property name="property">id</Property>
              <Property name="editorType">Label</Property>
              <Property name="showHint">false</Property>
              <Property name="labelAlign">right</Property>
              <Property name="showLabel">false</Property>
              <Editor/>
            </AutoFormElement>
          </AutoForm>
          <AutoForm>
            <Property name="dataSet">dsMain</Property>
            <Property name="cols">*,*,*</Property>
            <Property name="labelAlign">right</Property>
            <Property name="labelSeparator">:</Property>
            <Property name="labelWidth">120</Property>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">name</Property>
              <Property name="property">name</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">type</Property>
              <Property name="property">type</Property>
              <Property name="trigger">autoMappingDropDown1</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement id="formItemBank">
              <Property name="name">bankId</Property>
              <Property name="property">bankId</Property>
              <Property name="hideMode">visibility</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">deptId</Property>
              <Property name="property">deptId</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">depotId</Property>
              <Property name="property">depotId</Property>
              <Property name="trigger">dsDepotDropDown</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">foodVariety</Property>
              <Property name="property">foodVariety</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">year</Property>
              <Property name="property">year</Property>
              <Property name="trigger">defaultYearDropDown</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">customerName</Property>
              <Property name="property">customerName</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">unitName</Property>
              <Property name="property">unitName</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">targetNumber</Property>
              <Property name="property">targetNumber</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">completeNumber</Property>
              <Property name="property">completeNumber</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">completeStatus</Property>
              <Property name="property">completeStatus</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">completeTime</Property>
              <Property name="property">completeTime</Property>
              <Property name="readOnly">false</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createBy</Property>
              <Property name="property">createBy</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">auditStatus</Property>
              <Property name="property">auditStatus</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">contract</Property>
              <Property name="property">contract</Property>
              <Editor/>
            </AutoFormElement>
            <Label>
              <Property name="style">
                <Property name="color">blue</Property>
              </Property>
              <Property name="text">注:监管通知单,可填写质押合同名称</Property>
            </Label>
            <AutoFormElement layoutConstraint="colSpan:3">
              <Property name="name">remark</Property>
              <Property name="property">remark</Property>
              <Property name="editorType">TextArea</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">createTime</Property>
              <Property name="property">createTime</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">auditUser</Property>
              <Property name="property">auditUser</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">auditDate</Property>
              <Property name="property">auditDate</Property>
              <Property name="readOnly">true</Property>
              <Editor/>
            </AutoFormElement>
            <HtmlContainer layoutConstraint="colSpan:3">
              <Property name="content">1.出库通知单作为出库作业的前置条件,必须配置,否则无法进行入库作业。&lt;br>&#xD;
                2.单据类型=库区通知单,表示库区自己作业业务,不受监管管理。</Property>
              <Property name="exClassName">h-tip</Property>
              <Property name="contentOverflow">hidden</Property>
            </HtmlContainer>
          </AutoForm>
        </Container>
      </Children>
      <Tools/>
    </Dialog>
    <DataSetDropDown id="dsDepotDropDown">
      <ClientEvent name="onOpen">&#xD;
var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
if(!entity){&#xD;
    $alert(&quot;请先选择所属分库&quot;);&#xD;
}else{&#xD;
    var deptId = entity.get(&quot;deptId&quot;);&#xD;
    if(!deptId){&#xD;
        $alert(&quot;请先选择所属分库&quot;);&#xD;
    }else{&#xD;
        view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;deptId&quot;)).flushAsync();&#xD;
    }&#xD;
}</ClientEvent>
      <Property name="dataSet">dsDepotList</Property>
      <Property name="height">450</Property>
      <Property name="autoOpen">true</Property>
      <Property name="assignmentMap">depotId=id</Property>
      <Property name="width">400</Property>
      <DataColumn>
        <Property name="align">center</Property>
        <Property name="name">name</Property>
        <Property name="property">name</Property>
        <Editor/>
      </DataColumn>
    </DataSetDropDown>
    <UpdateAction id="updateSave">
      <Property name="dataResolver">inoutNoticePR#saveOut</Property>
      <UpdateItem>
        <Property name="dataPath">[#current]</Property>
        <Property name="dataSet">dsMain</Property>
      </UpdateItem>
    </UpdateAction>
    <AjaxAction id="ajaxDel">
      <Property name="service">inoutNoticePR#delDataOut</Property>
      <Property name="confirmMessage">确定要执行删除么?</Property>
    </AjaxAction>
    <AjaxAction id="ajaxInitAdd">
      <Property name="service">inoutNoticePR#initAddOut</Property>
    </AjaxAction>
    <AjaxAction id="recalculate">
      <Property name="service">inoutNoticePR#updateSumNoticeOut</Property>
    </AjaxAction>
  </View>
</ViewConfig>
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
@@ -6,6 +6,7 @@
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.BaseResp;
import com.fzzy.igds.data.NoticeDto;
import com.fzzy.igds.data.NoticeParam;
import com.fzzy.igds.service.InoutNoticeService;
@@ -92,7 +93,7 @@
     * inoutNoticePR#saveIn æ›´æ–°å…¥åº“通知单
     */
    @DataResolver
    public String saveIn(InoutNoticeIn data) {
    public BaseResp saveIn(InoutNoticeIn data) {
        InoutNoticeIn inoutNoticeIn = new InoutNoticeIn();
        BeanUtils.copyProperties(data, inoutNoticeIn);
        return inoutNoticeService.saveOrUpdateIn(inoutNoticeIn);
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml
@@ -12,6 +12,11 @@
        <Property></Property>
        <Property name="label">所属库区</Property>
        <Property name="required">true</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">kqmc</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="bizType">
        <Property></Property>
@@ -32,6 +37,7 @@
          <Property name="valueProperty">dictLabel</Property>
        </Property>
        <Property name="required">true</Property>
        <Property name="defaultValue">N</Property>
      </PropertyDef>
      <PropertyDef name="nodeName1">
        <Property></Property>
@@ -186,15 +192,19 @@
        </DataColumn>
        <DataColumn name="bizType">
          <Property name="property">bizType</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="valTag">
          <Property name="property">valTag</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="updateBy">
          <Property name="property">updateBy</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="updateTime">
          <Property name="property">updateTime</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="remark">
          <Property name="property">remark</Property>
@@ -233,7 +243,7 @@
            <Property name="labelSeparator">:</Property>
            <Property name="labelAlign">right</Property>
            <Property name="labelWidth">120</Property>
            <AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">deptId</Property>
              <Property name="property">deptId</Property>
              <Editor/>
@@ -243,17 +253,17 @@
              <Property name="property">bizType</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">valTag</Property>
              <Property name="property">valTag</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:3">
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">remark</Property>
              <Property name="property">remark</Property>
              <Property name="editorType">TextArea</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">valTag</Property>
              <Property name="property">valTag</Property>
              <Editor/>
            </AutoFormElement>
          </AutoForm>
        </Container>
        <IFrame id="iFrameFlow">
fzzy-igdss-web/src/main/resources/templates/login.html
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<html lang="zh-cn" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html
@@ -174,11 +174,12 @@
        }
        .status-bar {
            background-color: #f8f9fa;
            background-color: #fcf8e3;
            border-color: #faebcc;
            padding: 15px 15px;
            border-radius: 6px;
            margin-top: 15px;
            border-left: 4px solid #037d41;
            /*border-left: 4px solid #037d41;*/
        }
        .status-text {
            font-size: 13px;