jiazx0107@163.com
2023-06-08 08cea428e888b6fdd2a3c3783e87e4f828385783
出入库优化-提交优化
已修改21个文件
已添加2个文件
3228 ■■■■■ 文件已修改
igds-api-phone/src/main/java/com/ld/igds/phone/service/impl/ServiceImpl5205.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-api-phone/src/main/java/com/ld/igds/phone/service/impl/ServiceImpl5207.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-api-phone/src/main/java/com/ld/igds/phone/service/impl/ServiceImpl5208.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-api-phone/src/main/java/com/ld/igds/phone35/service/impl/Phone35ServiceImpl5207.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/com/ld/igds/inout/dto/InoutData.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/com/ld/igds/models/InoutSysConf.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/inout/mapper/InoutRecordMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/m/service/InoutCommonService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/m/service/impl/InoutCommonServiceImpl.java 145 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/m/view/InoutSysConfPR.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/java/com/ld/igds/timer/InoutScheduled.java 290 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-inout/src/main/resources/mapper/InoutRecordMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/application-dev.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/static/admin/inout/in-handle.js 561 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/static/admin/inout/in-handle20230506.js 327 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/static/admin/inout/in-weight.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/templates/admin/inout/in-handle.html 976 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/templates/admin/inout/in-handle20230605.html 540 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-api-phone/src/main/java/com/ld/igds/phone/service/impl/ServiceImpl5205.java
@@ -64,12 +64,10 @@
        if(param.getType().equals(PhoneConstant.PHONE_INOUT_START)){
            //值仓开始提交,只更新值仓开始时间
            data.setHandleStart(new Date());
            String msg = inoutService.updateData(data);
            return PhoneRespUtil.success(msg, req);
        }else{
            //值仓结束提交,需更新流程状态、值仓结束时间、值仓人、值仓扣重等
            data.setHandleEnd(new Date());
            data.setDeHandle(param.getDeHandle());
            data.setHandleUser(authUser.getCname());
            //设置值仓图片信息
igds-api-phone/src/main/java/com/ld/igds/phone/service/impl/ServiceImpl5207.java
@@ -64,12 +64,10 @@
        if(param.getType().equals(PhoneConstant.PHONE_INOUT_START)){
            //值仓开始提交,只更新值仓开始时间
            data.setHandleStart(new Date());
            String msg = inoutService.updateData(data);
            return PhoneRespUtil.success(msg, req);
        }else{
            //值仓结束提交,需更新流程状态、值仓结束时间、值仓人、值仓扣重等
            data.setHandleEnd(new Date());
            data.setDeHandle(param.getDeHandle());
            data.setHandleUser(authUser.getCname());
            //设置值仓图片信息
igds-api-phone/src/main/java/com/ld/igds/phone/service/impl/ServiceImpl5208.java
@@ -92,8 +92,6 @@
        inoutHandle.setFoodVariety(inoutData.getFoodVariety());
        inoutHandle.setSettleWeight(inoutData.getSettleWeight());
        inoutHandle.setFoodLevel(inoutData.getFoodLevel());
        inoutHandle.setHandleStart(inoutData.getHandleStart());
        inoutHandle.setHandelEnd(inoutData.getHandleEnd());
        inoutHandle.setProgress(inoutData.getProgress());
        //根据流水id、组织编码查询图片信息
igds-api-phone/src/main/java/com/ld/igds/phone35/service/impl/Phone35ServiceImpl5207.java
@@ -70,12 +70,10 @@
        BeanUtils.copyProperties(record, data);
        if(param.getType().equals(Phone35Constant.PHONE_INOUT_START)){
            //值仓开始提交,只更新值仓开始时间
            data.setHandleStart(new Date());
            String msg = inoutService.updateData(data);
            return PhoneRespUtil.success(null, req, msg);
        }else{
            //值仓结束提交,需更新流程状态、值仓结束时间、值仓人、值仓扣重等
            data.setHandleEnd(new Date());
            data.setDeHandle(param.getDeHandle());
            data.setHandleUser(phone35AuthUser.getCname());
            //设置值仓图片信息
igds-core/src/main/java/com/ld/igds/inout/dto/InoutData.java
@@ -42,12 +42,6 @@
    private Date emptyWeightTime;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date handleStart;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date handleEnd;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date completeTime;
    
    private List<FileData> files;//提交的相关附件信息,例如照片。
igds-core/src/main/java/com/ld/igds/models/InoutSysConf.java
@@ -44,15 +44,6 @@
    @PropertyDef(label = "出库流程配置", description = "使用-线隔开的流程配置")
    private String progressOut;
//    @Column(name = "NOTICE_TAG_IN_", length = 1)
//    @PropertyDef(label = "入库通知单标记")
//    private String noticeTagIn = Constant.YN_Y;
//
//    @Column(name = "NOTICE_TAG_OUT_", length = 1)
//    @PropertyDef(label = "出库通知单标记")
//    private String noticeTagOut = Constant.YN_Y;
    @Column(name = "NOTICE_WX_", length = 1)
    @PropertyDef(label = "是否启用微信通知")
    private String noticeWx = Constant.YN_N;
igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java
@@ -238,7 +238,12 @@
     * @return
     */
    @RequestMapping("/in-handle")
    public ModelAndView inHandle() {
    public ModelAndView inHandle(HttpServletRequest httpRequest, @RequestParam(value = "sort", required = false) String sort) {
        //如果没有指定地磅,从用户上一个选择中获取
        if (StringUtils.isEmpty(sort)) {
            sort = commonManager.getInoutWeightByClient(httpRequest);
        }
        ModelAndView view = new ModelAndView();
@@ -262,15 +267,13 @@
        // å½“前流程节点
        view.addObject("progress", InoutConstant.PROGRESS_HANDLE);
        // ç²®é£Ÿå“ç§ä¸‹æ‹‰æ¡†
        List<DicTrigger> listFoodVariety = inoutCommonManager.getDicTrigger(
                Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
        view.addObject("listFoodVariety", listFoodVariety);
        // è¿œç¨‹æ™ºæ…§å¡
        // èŽ·å–å‡ºå…¥åº“è®¾å¤‡é…ç½®ä¿¡æ¯
        List<InoutConf> listInoutConf = inoutCommonManager.getListInoutConf(user.getCompanyId(), deptId);
        InoutConf conf = inoutCommonManager.getInoutConf(listInoutConf, sort, InoutConstant.CONF_TYPE_80, InoutConstant.PROGRESS_WEIGHT_TAG, 1);
        if (null != conf) conf.setSort(sort);
        view.addObject("cardDto", conf);
        // ç²®é£Ÿç­‰çº§ä¸‹æ‹‰æ¡†
        List<DicTrigger> listFoodLevel = inoutCommonManager.getDicTrigger(
                Constant.TRIGGER_PARENT_FOOD_LEVEL, user.getCompanyId());
        view.addObject("listFoodLevel", listFoodLevel);
        view.setViewName("admin/inout/in-handle");
        return view;
@@ -613,13 +616,26 @@
    @Transactional
    public PageResponse<InoutData> submitWeight(@RequestBody InoutData data) throws Exception {
        if(null == data.getJjlx()) data.setJjlx("0");
        if (null == data.getJjlx()) data.setJjlx("0");
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            return inoutManager.submitWeightIn(data);
        } else {
            return inoutManager.submitWeightOut(data);
        }
    }
    /**
     * å‡ºå…¥åº“称重环节提交,请注意:值仓挑提交的数据非出入库流水完整信息,不能直接调用update方法
     *
     * @param data
     * @return
     */
    @RequestMapping("/submit-handle")
    @Transactional
    public PageResponse<InoutData> submitHandle(@RequestBody InoutData data) throws Exception {
        return inoutManager.submitHandle(data);
    }
    /**
@@ -836,7 +852,7 @@
     */
    @RequestMapping("/get-check-item")
    public PageResponse<List<CheckItemData>> getCheckItem(@RequestBody InoutCheckParam param) {
            return inoutManager.getCheckItemData(param);
        return inoutManager.getCheckItemData(param);
    }
    /**
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutCommonManager.java
@@ -4,13 +4,11 @@
import com.ld.igds.inout.InoutConstant;
import com.ld.igds.inout.dto.InoutData;
import com.ld.igds.inout.service.InoutService;
import com.ld.igds.io.dto.WeightDto;
import com.ld.igds.m.service.InoutCommonService;
import com.ld.igds.models.DicTrigger;
import com.ld.igds.models.InoutConf;
import com.ld.igds.models.InoutSysConf;
import com.ld.igds.sys.service.DicTriggerService;
import com.ld.igds.util.ContextUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@@ -110,16 +108,12 @@
        if (null == listInoutConf) return new InoutConf(sort);
        if (StringUtils.isEmpty(sort)) sort = "1";
        InoutConf result = null;
        for (InoutConf conf : listInoutConf) {
            if (sort.equals(conf.getSort()) && type.equals(conf.getType())) {
                return conf;
            }
        }
        if (null == result) return new InoutConf(sort);
        return result;
        return new InoutConf(sort);
    }
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
@@ -23,7 +23,6 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -48,8 +47,8 @@
    private CoreFileService fileService;
    @Autowired
    private CoreCommonService commonService;
    @Autowired
    private InoutCommonService inoutManagerService;
    @Resource
    private InoutCommonService inoutCommonService;
    @Autowired
    private CheckStandardManager checkStandardManager;
    @Resource
@@ -143,14 +142,14 @@
        List<FileData> files = data.getFiles();
        // æ›´æ–°ä¸‹ä¸€ä¸ªçŠ¶æ€å’ŒåŸºæœ¬ä¿¡æ¯
        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(
                data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf
                || StringUtils.isEmpty(inoutSysConf.getProgressIn())) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "当前库区未配置出库流程信息,请联系管理员配置。", data);
        }
        data = updateOutBasicInfo(data, inoutSysConf);
        data = updateBasicInfo(data, inoutSysConf);
        // å¦‚果当前节点是注册,则需要验证下,是否有为完成的流程在执行中
        if (InoutConstant.PROGRESS_REGISTER.equals(curProgress)) {
@@ -211,7 +210,7 @@
        }
        // æ›´æ–°ä¸‹ä¸€ä¸ªçŠ¶æ€å’ŒåŸºæœ¬ä¿¡æ¯
        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf
                || StringUtils.isEmpty(inoutSysConf.getProgressIn())) {
@@ -219,7 +218,7 @@
                    "当前库区未配置入库流程信息,请联系管理员配置。", data);
        }
        data = updateInBasicInfo(data, inoutSysConf);
        data = updateBasicInfo(data, inoutSysConf);
        // å¦‚果当前节点是注册,则需要验证下,是否有为完成的流程在执行中
        if (InoutConstant.PROGRESS_REGISTER.equals(curProgress)) {
@@ -317,7 +316,7 @@
        // æ›´æ–°ä¸‹ä¸€ä¸ªçŠ¶æ€å’ŒåŸºæœ¬ä¿¡æ¯
        if (InoutConstant.PROGRESS_CHECK.equals(progressData.getProgress())) {
            progressData = updateInBasicInfo(progressData, null);
            progressData = updateBasicInfo(progressData, null);
            // è‹¥åŒ–验结果不合格,判断配置后续流程
            if (InoutConstant.STATUS_UNPASS.equals(progressData
                    .getCheckStatus())) {
@@ -325,10 +324,7 @@
            }
        }
        progressData.setCheckUser(ContextUtil.getLoginUserCName());
//        if (StringUtils.isNotEmpty(data.getCustomerName())) {
//            progressData.setCustomerId(data.getCustomerId());
//            progressData.setCustomerName(data.getCustomerName());
//        }
        if (StringUtils.isNotEmpty(data.getDepotId())) {
            progressData.setDepotId(data.getDepotId());
        }
@@ -354,15 +350,6 @@
            progressData.setNoticeId(data.getNoticeId());
        }
//        // å›žå¡«æ°´åˆ†å’Œæ‚è´¨
//        if (checkResult.getWet() > 0) {
//            progressData.setWet(checkResult.getWet());
//        }
//
//        if (checkResult.getImpurity() > 0) {
//            progressData.setImpurity(checkResult.getImpurity());
//        }
        String msg = inoutService.updateData(progressData);
        if (null != msg) {
@@ -382,7 +369,7 @@
     * @return
     */
    private InoutData checkNoPass(InoutData data) {
        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(
                data.getCompanyId(), data.getDeptId());
        if (inoutSysConf.getNoPassNext().equals(InoutConstant.CHECK_NOPASS_RECORD)) {
@@ -450,82 +437,59 @@
    }
    /**
     * æ ¹æ®éœ€è¦ä¿å­˜çš„æ•°æ®ï¼Œè°ƒæ•´ä¸‹ä¸€ä¸ªæµç¨‹çŠ¶æ€ ä¸åŒçš„仓库组织流程可能不一样,需要根据实际调整
     * æ ¹æ®æ•°æ®å½“前状态和下一个状态,更新基础信息
     *
     * @param data
     * @return
     */
    private InoutData updateInBasicInfo(InoutData data, InoutSysConf sysConf) {
        if (null == sysConf) {
            sysConf = inoutManagerService.getCacheInoutSysConf(
                    data.getCompanyId(), data.getDeptId());
        }
    private InoutData updateBasicInfo(InoutData data, String curProgress, String nextProgress) {
        if (InoutConstant.PROGRESS_REGISTER.equals(data.getProgress())) {
        if (InoutConstant.PROGRESS_REGISTER.equals(curProgress)) {
            data.setRegisterTime(new Date());
            data.setRegisterUser(ContextUtil.getLoginUserCName());
            data.setProgress(getNextProgress(data.getProgress(),
                    data.getType(), sysConf));
            return data;
            data.setProgress(nextProgress);
        }
        if (InoutConstant.PROGRESS_WEIGHT_FULL.equals(data.getProgress())) {
            data.setFullWeightTime(new Date());
            data.setFullWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(getNextProgress(data.getProgress(),
                    data.getType(), sysConf));
            return data;
        }
        if (InoutConstant.PROGRESS_CHECK.equals(data.getProgress())) {
            data.setCheckUser(ContextUtil.getLoginUserCName());
            data.setProgress(getNextProgress(data.getProgress(),
                    data.getType(), sysConf));
            return data;
        }
        if (InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(data.getProgress())) {
        if (InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
            data.setEmptyWeightTime(new Date());
            data.setEmptyWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
            data.setProgress(getNextProgress(data.getProgress(),
                    data.getType(), sysConf));
        }
        if (InoutConstant.PROGRESS_WEIGHT_FULL.equals(curProgress)) {
            data.setFullWeightTime(new Date());
            data.setFullWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
            if (InoutConstant.PROGRESS_RECORD.equals(data.getProgress())) {
                data.setCompleteTime(DateUtils.addMinutes(new Date(), 2));
                data.setCompleteUser(ContextUtil.getLoginUserCName());
        if (InoutConstant.PROGRESS_HANDLE.equals(curProgress)) {
            if (null == data.getHandleUser()) {
                data.setHandleUser(ContextUtil.getLoginUserCName());
            }
            return data;
            data.setProgress(nextProgress);
        }
        if (InoutConstant.PROGRESS_HANDLE.equals(data.getProgress())) {
            // æŸ¥è¯¢ç¼“存中仓库信息,根据仓库id设置值仓人为仓库保管员
            Depot depot = commonService.getCacheDepot(data.getCompanyId(),
                    data.getDepotId());
            data.setHandleUser(depot == null ? "" : depot.getStoreKeeperName());
            data.setProgress(getNextProgress(data.getProgress(),
                    data.getType(), sysConf));
            return data;
        }
        if (InoutConstant.PROGRESS_CARD_BACK.equals(data.getProgress())) {
            data.setCompleteTime(new Date());
        //如果下一个数据状态=流程结束,直接补充完整信息
        if (InoutConstant.PROGRESS_RECORD.equals(nextProgress)) {
            data.setCompleteTime(DateUtils.addMinutes(new Date(), 2));
            data.setCompleteUser(ContextUtil.getLoginUserCName());
            data.setProgress(getNextProgress(data.getProgress(),
                    data.getType(), sysConf));
            return data;
            data.setProgress(nextProgress);
        }
        return data;
    }
    /**
     * å½“前方法需要删除
     * <p>
     * æ ¹æ®éœ€è¦ä¿å­˜çš„æ•°æ®ï¼Œè°ƒæ•´ä¸‹ä¸€ä¸ªæµç¨‹çŠ¶æ€ ä¸åŒçš„仓库组织流程可能不一样,需要根据实际调整
     *
     * @param data
     * @return
     */
    private InoutData updateOutBasicInfo(InoutData data, InoutSysConf sysConf) {
    private InoutData updateBasicInfo(InoutData data, InoutSysConf sysConf) {
        if (InoutConstant.PROGRESS_REGISTER.equals(data.getProgress())) {
            data.setRegisterTime(new Date());
            data.setRegisterUser(ContextUtil.getLoginUserCName());
@@ -577,36 +541,6 @@
        return data;
    }
//    public PageResponse<Page<InoutData>> pageRecordData(InoutParam param) {
//
//        log.debug("分页信息--page={},limit={},cuur={}", param.getPage(),
//                param.getLimit(), param.getCurr());
//
//        Page<InoutData> result = inoutService.pageRecordData(param);
//
//        if (null == result.getRecords() || result.getRecords().isEmpty()) {
//            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
//                    "获取到数据信息为空");
//        }
//
//        return new PageResponse<>(RespCodeEnum.CODE_0000, result);
//    }
//    /**
//     * @param param
//     * @return
//     */
//    public PageResponse<Page<InoutData>> pageCheckData(InoutParam param) {
//        // å¦‚果是已化验,则将流程状态置空,如果是未化验,则流程状态不处理,仍是CHECK状态
//        if (!"NONE".equals(param.getCheckStatus())) {
//            param.setProgress(null);
//        }
//        // è®¾ç½®åˆ†åº“Id
//        String deptId = ContextUtil.subDeptId(null);
//        param.setDeptId(deptId);
//        return pageRecordData(param);
//    }
    public PageResponse<InoutData> inoutComplete(InoutData data) throws Exception {
@@ -774,9 +708,6 @@
            if (null == data.getFullWeightTime()) {
                data.setFullWeightTime(DateUtil.getNewByMinute(new Date(), -50));
            }
            if (null == data.getHandleEnd()) {
                data.setHandleEnd(DateUtil.getNewByMinute(new Date(), -40));
            }
            if (null == data.getEmptyWeightTime()) {
                data.setEmptyWeightTime(DateUtil.getNewByMinute(new Date(), -10));
            }
@@ -790,9 +721,6 @@
        } else {
            if (null == data.getEmptyWeightTime()) {
                data.setEmptyWeightTime(DateUtil.getNewByMinute(new Date(), -50));
            }
            if (null == data.getHandleEnd()) {
                data.setHandleEnd(DateUtil.getNewByMinute(new Date(), -40));
            }
            if (null == data.getFullWeightTime()) {
                data.setFullWeightTime(DateUtil.getNewByMinute(new Date(), -10));
@@ -1026,19 +954,19 @@
        //获取系统参数配置
        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "提示:当前库区未配置出入库流程信息,请联系管理员", data);
        }
        String curProgress = data.getProgress();
        //获取下一个流程状态
        String curProgress = data.getProgress();
        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
        data.setRegisterTime(new Date());
        data.setRegisterUser(ContextUtil.getLoginUserCName());
        data.setProgress(nextProgress);
        data = updateBasicInfo(data, curProgress, nextProgress);
        String msg = inoutService.insertData(data);
@@ -1056,36 +984,17 @@
    public PageResponse<InoutData> submitWeightIn(InoutData data) throws Exception {
        //获取系统参数配置
        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "提示:当前系统中流程配置异常,请联系管理员", data);
        }
        String curProgress = data.getProgress();
        //获取下一个流程状态
        String curProgress = data.getProgress();
        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
        if (InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
            data.setEmptyWeightTime(new Date());
            data.setEmptyWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
        if (InoutConstant.PROGRESS_WEIGHT_FULL.equals(nextProgress)) {
            data.setFullWeightTime(new Date());
            data.setFullWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
        //如果下一个数据状态=流程结束
        if (InoutConstant.PROGRESS_RECORD.equals(nextProgress)) {
            data.setCompleteTime(DateUtils.addMinutes(new Date(), 2));
            data.setCompleteUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
        data = updateBasicInfo(data, curProgress, nextProgress);
        //入库称重可能调整质检单
@@ -1116,37 +1025,17 @@
    public PageResponse<InoutData> submitWeightOut(InoutData data) throws Exception {
        //获取系统参数配置
        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "提示:当前系统中流程配置异常,请联系管理员", data);
        }
        String curProgress = data.getProgress();
        //获取下一个流程状态
        String curProgress = data.getProgress();
        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
        if (InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
            data.setEmptyWeightTime(new Date());
            data.setEmptyWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
        if (InoutConstant.PROGRESS_WEIGHT_FULL.equals(nextProgress)) {
            data.setFullWeightTime(new Date());
            data.setFullWeightUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
        //如果下一个数据状态=流程结束
        if (InoutConstant.PROGRESS_RECORD.equals(nextProgress)) {
            data.setCompleteTime(DateUtils.addMinutes(new Date(), 2));
            data.setCompleteUser(ContextUtil.getLoginUserCName());
            data.setProgress(nextProgress);
        }
        data = updateBasicInfo(data, curProgress, nextProgress);
        //执行数据更新
        String msg = inoutService.updateData(data);
@@ -1158,8 +1047,35 @@
        // æ‰§è¡Œé™„件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        //称重完成,调用出入库控制逻辑处理
        //称重后根据当前流程状态和下一个状态,通知称重控制器
        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data);
    }
    public PageResponse<InoutData> submitHandle(InoutData data) throws Exception {
        //获取系统参数配置
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "提示:当前系统中流程配置异常,请联系管理员", data);
        }
        //获取下一个流程状态
        String curProgress = data.getProgress();
        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
        data = updateBasicInfo(data, curProgress, nextProgress);
        //执行数据更新
        String msg = inoutService.updateDataByHandle(data);
        if (null != msg) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
        }
        // æ‰§è¡Œé™„件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data);
    }
@@ -1302,7 +1218,7 @@
            //更新下一流程状态
            if (InoutConstant.PROGRESS_CHECK.equals(curData.getProgress())) {
                curData = updateInBasicInfo(curData, null);
                curData = updateBasicInfo(curData, null);
                // è‹¥åŒ–验结果不合格,判断配置后续流程
                if (InoutConstant.STATUS_UNPASS.equals(curData.getCheckStatus())) {
                    curData = checkNoPass(curData);
@@ -1330,8 +1246,5 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "后台异常:" + e.getMessage(), null);
        }
    }
}
igds-inout/src/main/java/com/ld/igds/inout/mapper/InoutRecordMapper.java
@@ -66,6 +66,14 @@
     */
    int updateData(@Param("data") InoutData data);
    /**
     * æ›´æ–°æ•°æ®æ ¹æ®å€¼ä»“,更新部分信息
     *
     * @param data
     */
    void updateDataByHandle(@Param("data") InoutData data);
    /**
     * åˆ†é¡µèŽ·å–æ•°æ®
     *
@@ -92,12 +100,6 @@
     */
    int validateInoutData(@Param("param") InoutParam param);
    /**
     * æ›´æ–°å‡ºå…¥åº“流水实时库存
     *
     * @param param
     * @return int updateCuStorage(@Param("param") InoutParam param);
     */
    /**
     * æ ¹æ®like获取数据库中最大的ID,
@@ -141,4 +143,6 @@
     * @return
     */
    int checkExist(@Param("param") InoutParam param);
}
igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java
@@ -68,6 +68,14 @@
    String updateData(InoutData data) throws Exception;
    /**
     * å€¼ä»“环节提交数据,只更新部分信息
     *
     * @param data
     * @return
     */
    String updateDataByHandle(InoutData data);
    /**
     * åˆ†é¡µèŽ·å–ä½ä¿¡æ¯
     *
     * @param param
@@ -265,4 +273,6 @@
     * @throws Exception
     */
    String updateCheckData(InoutCheckData data);
}
igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
@@ -5,7 +5,6 @@
import com.ld.igds.common.CoreCommonService;
import com.ld.igds.constant.BizType;
import com.ld.igds.constant.Constant;
import com.ld.igds.constant.FoodType;
import com.ld.igds.constant.RedisConst;
import com.ld.igds.data.CommonData;
import com.ld.igds.data.Page;
@@ -171,6 +170,8 @@
    @Override
    public String updateData(InoutData data) throws Exception {
        data.setUpdateTime(new Date());
        if (StringUtils.isEmpty(data.getCompanyId())) {
            data.setCompanyId(ContextUtil.getCompanyId());
        }
@@ -187,6 +188,28 @@
        //更新缓存
        updateInoutCache(newData);
        return null;
    }
    @Override
    public String updateDataByHandle(InoutData data) {
        data.setUpdateTime(new Date());
        if (StringUtils.isEmpty(data.getCompanyId())) {
            data.setCompanyId(ContextUtil.getCompanyId());
        }
        InoutData newData;
        if (EntityUtils.isEntity(data)) {
            newData = new InoutData();
            BeanUtils.copyProperties(data, newData, new String[]{"checkItems", "files"});
        } else {
            newData = data;
        }
        inoutMapper.updateDataByHandle(newData);
        //更新缓存
        updateInoutCache(newData);
        return null;
    }
@@ -660,7 +683,6 @@
                .getCode())
                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
                .getCode())) {
            // åˆ›å»ºä¸€ä¸ªå­ä»»åŠ¡è¿›è¡ŒæŽ¨é€ä¿¡æ¯
igds-inout/src/main/java/com/ld/igds/m/service/InoutCommonService.java
@@ -33,14 +33,6 @@
    InoutSysConf getCacheInoutSysConf(String companyId, String deptId);
    /**
     * å‡ºå…¥åº“流程 - ä»Žç¼“存获取
     *
     * @param companyId
     * @return
     */
    List<InoutSysConf> getCacheInoutSysConf(String companyId);
    /**
     * å‡ºå…¥åº“设备及流程 - æ ¹æ®ç»„织编码刷新全部缓存
     *
     * @param companyId
igds-inout/src/main/java/com/ld/igds/m/service/impl/InoutCommonServiceImpl.java
@@ -1,5 +1,7 @@
package com.ld.igds.m.service.impl;
import java.util.List;
import com.ld.igds.constant.RedisConst;
import com.ld.igds.inout.InoutConstant;
import com.ld.igds.inout.dto.InoutParam;
@@ -14,10 +16,9 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.*;
import javax.annotation.Resource;
/**
 * å‡ºå…¥åº“开始前的各种配置 --- åŒ…含流程配置、出入库设备配置、通知单等
@@ -28,71 +29,37 @@
@Repository(InoutCommonService.BEAN_ID)
public class InoutCommonServiceImpl implements InoutCommonService {
    @Autowired
    @Resource
    private RedisUtil redisUtil;
    @Autowired
    private InoutCommonMapper inoutManagerMapper;
    @Resource
    private InoutCommonMapper inoutCommonMapper;
    @Override
    public void flushInoutSysConfCache(InoutSysConf data) {
        String key = RedisConst.buildKey(data.getCompanyId(), InoutConstant.CACHE_INOUT_SYS_CONF, data.getDeptId());
        String key = RedisConst.buildKey(data.getDeptId(), InoutConstant.CACHE_INOUT_SYS_CONF);
        redisUtil.set(key, data);
    }
    @Override
    public InoutSysConf getCacheInoutSysConf(String companyId, String deptId) {
        if (null == companyId || null == deptId) {
            return null;
        }
        // ä»Žç¼“存中获取已有的组织编码
        String key = RedisConst.buildKey(companyId, InoutConstant.CACHE_INOUT_SYS_CONF, deptId);
        String key = RedisConst.buildKey(deptId, InoutConstant.CACHE_INOUT_SYS_CONF);
        return (InoutSysConf) redisUtil.get(key);
    }
    @Override
    public List<InoutSysConf> getCacheInoutSysConf(String companyId) {
        if (StringUtils.isEmpty(companyId)) {
            return null;
        }
        String pattern = RedisConst.buildKey(companyId, InoutConstant.CACHE_INOUT_SYS_CONF);
        Set<String> keys = redisUtil.keys(pattern);
        if (null == keys || keys.isEmpty()) {
            return null;
        }
        List<InoutSysConf> list = new ArrayList<>();
        for (String key : keys) {
            list.add((InoutSysConf) redisUtil.get(key));
        }
        return list;
    }
    @Override
    public void flushInoutConfCache(String companyId, String deptId) {
        List<InoutConf> list = inoutManagerMapper.listInoutConf(companyId, deptId);
        List<InoutConf> list = inoutCommonMapper.listInoutConf(companyId, deptId);
        String key = RedisConst.buildKey(companyId, InoutConstant.CACHE_INOUT_CONF_LIST, deptId);
        redisUtil.set(key, list);
        log.debug("---更新出入库配置信息缓存----");
    }
    @Override
    @SuppressWarnings("unchecked")
    @Override
    public List<InoutConf> getCacheInoutConf(String companyId, String deptId) {
        if (null == companyId || null == deptId) {
            return null;
        }
        String key = RedisConst.buildKey(companyId,
                InoutConstant.CACHE_INOUT_CONF_LIST, deptId);
        String key = RedisConst.buildKey(companyId, InoutConstant.CACHE_INOUT_CONF_LIST, deptId);
        return (List<InoutConf>) redisUtil.get(key);
    }
@@ -117,7 +84,7 @@
    @Override
    public void updateInoutConfStatus(String ip, Integer port, String status) {
        inoutManagerMapper.updateInoutConfStatus(ip, port, status);
        inoutCommonMapper.updateInoutConfStatus(ip, port, status);
    }
    @Override
@@ -128,53 +95,12 @@
        if (StringUtils.isNotEmpty(param.getKey())) {
            param.setKey("%" + param.getKey() + "%");
        }
        return inoutManagerMapper.listCustomer(param);
        return inoutCommonMapper.listCustomer(param);
    }
//    @Override
//    public List<InoutCustomer> listCustomerByNoticeIn(InoutParam param) {
//        if (StringUtils.isEmpty(param.getCompanyId())) {
//            param.setCompanyId(ContextUtil.getCompanyId());
//        }
//        //设置当前年份
//        Date date = new Date();
//        if (null != param.getStart()) {
//            date = param.getStart();
//        }
//        param.setYear(DateFormatUtils.format(date, "yyyy"));
//
//        if (StringUtils.isNotEmpty(param.getKey())) {
//            param.setKey("%" + param.getKey() + "%");
//        }
//        //设置通知单完成状态
//        param.setType(InoutConstant.COMPLETE_STATUS_NONE);
//        return inoutManagerMapper.listCustomerByNoticeIn(param);
//    }
//    @Override
//    public List<InoutCustomer> listCustomerByNoticeOut(InoutParam param) {
//        if (StringUtils.isEmpty(param.getCompanyId())) {
//            param.setCompanyId(ContextUtil.getCompanyId());
//        }
//
//        //设置当前年份
//        Date date = new Date();
//        if (null != param.getStart()) {
//            date = param.getStart();
//        }
//        param.setYear(DateFormatUtils.format(date, "yyyy"));
//
//        if (StringUtils.isNotEmpty(param.getKey())) {
//            param.setKey("%" + param.getKey() + "%");
//        }
//        //设置通知单完成状态
//        param.setType(InoutConstant.COMPLETE_STATUS_NONE);
//        return inoutManagerMapper.listCustomerByNoticeOut(param);
//    }
    @Override
    public int updateCustomer(NoticeInData data) {
        return inoutManagerMapper.updateCustomer(data);
        return inoutCommonMapper.updateCustomer(data);
    }
    @Override
@@ -183,22 +109,13 @@
            companyId = ContextUtil.getCompanyId();
        }
        return inoutManagerMapper.getMaxCustomerId(companyId);
        return inoutCommonMapper.getMaxCustomerId(companyId);
    }
//    @Override
//    public InoutNoticeIn getInoutNoticeIn(NoticeInParam param) {
//        List<InoutNoticeIn> list = inoutManagerMapper.listNoticeIn(param);
//        if (null == list || list.isEmpty()) {
//            return null;
//        }
//        return list.get(0);
//    }
    @Override
    public int updateNoticeIn(NoticeInData data) {
        int i = inoutManagerMapper.updateNoticeIn(data);
        int i = inoutCommonMapper.updateNoticeIn(data);
        if (i == 0) {
            log.info("系统中没有更新到当前用户任务信息,新增一个客户任务!");
@@ -214,14 +131,14 @@
            param.setName("入库通知单");
            param.setCreateUser(data.getCreateUser());
            param.setId(data.getId());
            inoutManagerMapper.addNoticeIn(param);
            inoutCommonMapper.addNoticeIn(param);
        }
        return i;
    }
    @Override
    public List<InoutNoticeIn> getUnComNoticeIn(String companyId) {
        return inoutManagerMapper.getUnComNoticeIn(companyId);
        return inoutCommonMapper.getUnComNoticeIn(companyId);
    }
    @Override
@@ -238,32 +155,24 @@
        if (StringUtils.isEmpty(param.getDeptId())) {
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        inoutManagerMapper.reSumNoticeInComplete(param);
        inoutCommonMapper.reSumNoticeInComplete(param);
        return null;
    }
    @Override
    public Integer queryNoticeOut(NoticeParam param) {
        return inoutManagerMapper.queryNoticeOut(param);
        return inoutCommonMapper.queryNoticeOut(param);
    }
    @Override
    public Integer queryNoticeIn(NoticeParam param) {
        return inoutManagerMapper.queryNoticeIn(param);
        return inoutCommonMapper.queryNoticeIn(param);
    }
//    @Override
//    public InoutNoticeOut getInoutNoticeOut(NoticeOutParam param) {
//        List<InoutNoticeOut> list = inoutManagerMapper.getNoticeOut(param);
//        if (null == list || list.isEmpty()) {
//            return null;
//        }
//        return list.get(0);
//    }
    @Override
    public List<InoutNoticeOut> getUnComNoticeOut(String companyId) {
        return inoutManagerMapper.getUnComNoticeOut(companyId);
        return inoutCommonMapper.getUnComNoticeOut(companyId);
    }
@@ -284,7 +193,7 @@
        if (StringUtils.isEmpty(param.getDeptId())) {
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        inoutManagerMapper.reSumNoticeOutComplete(param);
        inoutCommonMapper.reSumNoticeOutComplete(param);
        return null;
    }
@@ -344,13 +253,11 @@
    @Override
    public List<InoutNoticeIn> listNoticeIn(NoticeParam param) {
        return inoutManagerMapper.listNoticeIn(param);
        return inoutCommonMapper.listNoticeIn(param);
    }
    @Override
    public List<InoutNoticeOut> listNoticeOut(NoticeParam param) {
        return inoutManagerMapper.listNoticeOut(param);
        return inoutCommonMapper.listNoticeOut(param);
    }
}
igds-inout/src/main/java/com/ld/igds/m/view/InoutSysConfPR.java
@@ -92,11 +92,9 @@
        
        inoutConfService.saveSysConfData(data);
        
        InoutSysConf newData = new InoutSysConf();
        BeanUtils.copyProperties(data, newData);
        inoutManagerService.flushInoutSysConfCache(newData);
        return null;
    }
igds-inout/src/main/java/com/ld/igds/timer/InoutScheduled.java
@@ -23,9 +23,7 @@
import java.util.Map;
/**
 * @Desc: å‡ºå…¥åº“定时任务。
 * 1、通知单完成量统计
 * 2、出入库库存管理统计
 * @Desc: å‡ºå…¥åº“定时任务。 1、通知单完成量统计 2、出入库库存管理统计
 * @author: Andy
 * @update-time: 2022/11/22
 */
@@ -33,187 +31,181 @@
@Component(InoutScheduled.BEAN_ID)
public class InoutScheduled {
    public static final String BEAN_ID = "basic.inoutScheduled";
    public static final String BEAN_ID = "basic.inoutScheduled";
    @Resource
    private InoutCommonService inoutCommonService;
    @Resource
    private InoutCommonService inoutCommonService;
    @Resource
    private InoutService inoutService;
    @Resource
    private InoutService inoutService;
    @Resource
    private CoreCommonService commonService;
    @Resource
    private CoreCommonService commonService;
    /**
     * æ¯å¤©æ™šä¸Š11点进行更新未完成出入库通知单的完成量
     */
    @Scheduled(cron = "0 0 23 * * ?")
    public void scheduled1() {
    /**
     * æ¯å¤©æ™šä¸Š11点进行更新未完成出入库通知单的完成量
     */
    @Scheduled(cron = "0 0 23 * * ?")
    public void scheduled1() {
        List<DefaultCompany> listCompany = commonService.getCompanyList();
        if (null == listCompany)
            return;
        List<DefaultCompany> listCompany = commonService.getCompanyList();
        if (null == listCompany) return;
        // èŽ·å–3天内的出入库记录,如果有记录则执行,如果没有,则无需执行
        Date start = DateUtil.getNewByDay(null, -3);
        InoutParam param;
        List<InoutData> listRecord;
        for (DefaultCompany company : listCompany) {
            param = new InoutParam();
            param.setStart(start);
            param.setCompanyId(company.getId());
            listRecord = inoutService.listRecordData(param);
        //获取3天内的出入库记录,如果有记录则执行,如果没有,则无需执行
        Date start = DateUtil.getNewByDay(null, -3);
        InoutParam param;
        List<InoutData> listRecord;
        for (DefaultCompany company : listCompany) {
            param = new InoutParam();
            param.setStart(start);
            param.setCompanyId(company.getId());
            listRecord = inoutService.listRecordData(param);
            noticeCompleteExe(company.getId(), listRecord);
            noticeCompleteExe(company.getId(), listRecord);
            sumDepotStoreExe(company.getId(), listRecord);
        }
            sumDepotStoreExe(company.getId(), listRecord);
        }
    }
    }
    /**
     * basic.inoutScheduled#sumDepotStoreExeByHand
     * <p>
     * <p>
     * æ‰‹åŠ¨æ‰§è¡Œå‡ºå…¥åº“åº“å­˜ç»Ÿè®¡å…¥å£
     *
     * @param start
     * @return
     */
    @Expose
    public String sumDepotStoreExeByHand(Date start) {
        if (null == start)
            start = new Date();
    /**
     * basic.inoutScheduled#sumDepotStoreExeByHand
     * <p>
     * <p>
     * æ‰‹åŠ¨æ‰§è¡Œå‡ºå…¥åº“åº“å­˜ç»Ÿè®¡å…¥å£
     *
     * @param start
     * @return
     */
    @Expose
    public String sumDepotStoreExeByHand(Date start) {
        start = DateUtil.getCurZero(start);
        if (null == start) start = new Date();
        // èŽ·å–3天内的出入库记录,如果有记录则执行,如果没有,则无需执行
        start = DateUtil.getNewByDay(null, -3);
        String companyId = ContextUtil.getCompanyId();
        start = DateUtil.getCurZero(start);
        InoutParam param = new InoutParam();
        param.setStart(start);
        param.setCompanyId(companyId);
        //获取3天内的出入库记录,如果有记录则执行,如果没有,则无需执行
        start = DateUtil.getNewByDay(null, -3);
        String companyId = ContextUtil.getCompanyId();
        List<InoutData> listRecord = inoutService.listRecordData(param);
        InoutParam param = new InoutParam();
        param.setStart(start);
        param.setCompanyId(companyId);
        sumDepotStoreExe(companyId, listRecord);
        List<InoutData> listRecord = inoutService.listRecordData(param);
        return "SUCCESS";
    }
        sumDepotStoreExe(companyId, listRecord);
    /**
     * åŒæ­¥ä»“库库存,根据近期出入库记录,如果没有记录则表示无出入库操作,取消执行
     *
     * @param companyId
     * @param listRecord
     */
    private void sumDepotStoreExe(String companyId, List<InoutData> listRecord) {
        return "SUCCESS";
    }
        if (null == listRecord || listRecord.isEmpty()) {
            log.info("-----------系统自动同步库存,近期无出入库记录,取消同步仓库库存……{}", companyId);
            return;
        }
    /**
     * åŒæ­¥ä»“库库存,根据近期出入库记录,如果没有记录则表示无出入库操作,取消执行
     *
     * @param companyId
     * @param listRecord
     */
    private void sumDepotStoreExe(String companyId, List<InoutData> listRecord) {
        // èŽ·å–æœ‰å‡ºå…¥åº“è®°å½•çš„ä»“åº“
        Map<String, InoutRecord> map = new HashMap<>();
        String key;
        DepotStore lastStore;
        double sumRecordWeight = 0.0;
        InoutParam param;
        for (InoutData data : listRecord) {
            key = data.getDepotId() + "_" + data.getType();
            if (null != map.get(key))
                continue;
        if (null == listRecord || listRecord.isEmpty()) {
            log.info("-----------系统自动同步库存,近期无出入库记录,取消同步仓库库存……{}", companyId);
            return;
        }
            map.put(key, data);
        //获取有出入库记录的仓库
        Map<String, InoutRecord> map = new HashMap<>();
        String key;
        DepotStore lastStore;
        double sumRecordWeight = 0.0;
        InoutParam param;
        for (InoutData data : listRecord) {
            key = data.getDepotId() + "_" + data.getType();
            if (null != map.get(key)) continue;
            // æ ¹æ®æœ€åŽä¸€è½¦è¿›è¡Œæ±‡æ€»ç»Ÿè®¡ï¼Œå¼€å§‹æ—¶é—´æ˜¯ä»“库库存最后一个时间截止到当前
            lastStore = commonService.getLastDepotStore(data.getDepotId());
            if (null == lastStore) {
                log.error(
                        "--------出入库定时任务-----没有获取到仓库最后库存信息,取消自动统计,请核对业务逻辑--仓库-{}",
                        data.getDepotId());
                continue;
            }
            // åªæœ‰å‡ºå…¥åº“状态的仓库才进行统计,其他状态表示出入库作业完成,不在执行统计
            if (DepotStatus.STATUS_2.getCode().equals(
                    lastStore.getDepotStatus())
                    || DepotStatus.STATUS_4.getCode().equals(
                            lastStore.getDepotStatus())) {
            map.put(key, data);
                param = new InoutParam();
                // param.setStart(lastStore.getCreateDate());
                param.setEnd(new Date());
                param.setDeptId(data.getDeptId());
                param.setDepotId(data.getDepotId());
                param.setCompanyId(data.getCompanyId());
                param.setType(data.getType());
            //根据最后一车进行汇总统计,开始时间是仓库库存最后一个时间截止到当前
            lastStore = commonService.getLastDepotStore(data.getDepotId());
            if (null == lastStore) {
                log.error("--------出入库定时任务-----没有获取到仓库最后库存信息,取消自动统计,请核对业务逻辑--仓库-{}", data.getDepotId());
                continue;
            }
                // å‡ºå…¥åº“重量合计
                sumRecordWeight = inoutService.sumRecordWeight(param);
                // æ–°å¢žä¸€æ¡åº“存记录
                lastStore.setRemark("系统定时生成记录");
                lastStore.setId(ContextUtil.getUUID());
                lastStore.setUpdateUser(null);
                lastStore.setUpdateDate(new Date());
                // lastStore.setCreateDate(new Date());
            //只有出入库状态的仓库才进行统计,其他状态表示出入库作业完成,不在执行统计
            if (DepotStatus.STATUS_2.getCode().equals(lastStore.getDepotStatus()) ||
                    DepotStatus.STATUS_4.getCode().equals(lastStore.getDepotStatus())) {
                if (InoutConstant.TYPE_IN.equals(data.getType())) {
                    lastStore.setStorageReal(lastStore.getStorageReal()
                            + sumRecordWeight);
                }
                param = new InoutParam();
                //param.setStart(lastStore.getCreateDate());
                param.setEnd(new Date());
                param.setDeptId(data.getDeptId());
                param.setDepotId(data.getDepotId());
                param.setCompanyId(data.getCompanyId());
                param.setType(data.getType());
                if (InoutConstant.TYPE_OUT.equals(data.getType())) {
                    lastStore.setStorageReal(lastStore.getStorageReal()
                            - sumRecordWeight);
                }
                //出入库重量合计
                sumRecordWeight = inoutService.sumRecordWeight(param);
                commonService.addDepotStore(lastStore, true);
            }
                //新增一条库存记录
                lastStore.setRemark("系统定时生成记录");
                lastStore.setId(ContextUtil.getUUID());
                lastStore.setUpdateUser(null);
                lastStore.setUpdateDate(new Date());
               // lastStore.setCreateDate(new Date());
        }
    }
                if (InoutConstant.TYPE_IN.equals(data.getType())) {
                    lastStore.setStorageReal(lastStore.getStorageReal() + sumRecordWeight);
                }
    /**
     * åŒæ­¥é€šçŸ¥å•完成量,根据近期出入库记录,如果无近期出入库记录,则表示无出入库作业,取消执行
     *
     * @param companyId
     * @param listRecord
     */
    public void noticeCompleteExe(String companyId, List<InoutData> listRecord) {
        log.info("----------系统定时更新出入库通知单完成量----------");
                if (InoutConstant.TYPE_OUT.equals(data.getType())) {
                    lastStore.setStorageReal(lastStore.getStorageReal() - sumRecordWeight);
                }
        if (null == listRecord || listRecord.isEmpty()) {
            log.info("-----------系统自动同步库存,近期无出入库记录,取消同步通知单完成量……{}", companyId);
            return;
        }
        //TODO å¾…优化
                commonService.addDepotStore(lastStore, true);
            }
        // èŽ·å–æ‰€æœ‰æœªå®ŒæˆçŠ¶æ€çš„å‡ºåº“é€šçŸ¥å•
        List<InoutNoticeOut> noticeOutList = inoutCommonService.getUnComNoticeOut(companyId);
        }
    }
        // èŽ·å–æ‰€æœ‰æœªå®ŒæˆçŠ¶æ€çš„å…¥åº“é€šçŸ¥å•
        List<InoutNoticeIn> noticeInList = inoutCommonService.getUnComNoticeIn(companyId);
        String deptId  = noticeInList.get(0).getDeptId();
        // æ›´æ–°å…¥åº“通知单完成量
        inoutCommonService.updateSumNoticeIn(deptId,
                noticeInList);
    /**
     * åŒæ­¥é€šçŸ¥å•完成量,根据近期出入库记录,如果无近期出入库记录,则表示无出入库作业,取消执行
     *
     * @param companyId
     * @param listRecord
     */
    public void noticeCompleteExe(String companyId, List<InoutData> listRecord) {
        log.info("----------系统定时更新出入库通知单完成量----------");
        if (null == listRecord || listRecord.isEmpty()) {
            log.info("-----------系统自动同步库存,近期无出入库记录,取消同步通知单完成量……{}", companyId);
            return;
        }
        List<InoutSysConf> inoutSysConfList = inoutCommonService.getCacheInoutSysConf(companyId);
        //不配置说明没有启动出入库
        if (null == inoutSysConfList || inoutSysConfList.isEmpty()) {
            return;
        }
        //获取所有未完成状态的出库通知单
        List<InoutNoticeOut> noticeOutList = inoutCommonService.getUnComNoticeOut(companyId);
        //获取所有未完成状态的入库通知单
        List<InoutNoticeIn> noticeInList = inoutCommonService.getUnComNoticeIn(companyId);
        for (InoutSysConf inoutSysConf : inoutSysConfList) {
            //  åˆ¤æ–­å…¥åº“通知单是否启用
             //更新入库通知单完成量
            inoutCommonService.updateSumNoticeIn(inoutSysConf.getDeptId(), noticeInList);
            //  åˆ¤æ–­å‡ºåº“通知单是否启用
            //更新出库通知单完成量
            inoutCommonService.updateSumNoticeOut(inoutSysConf.getDeptId(), noticeOutList);
        }
    }
        // æ›´æ–°å‡ºåº“通知单完成量
        inoutCommonService.updateSumNoticeOut(deptId,noticeOutList);
    }
}
igds-inout/src/main/resources/mapper/InoutRecordMapper.xml
@@ -263,6 +263,23 @@
        and id_=#{data.id}
    </update>
    <update id="updateDataByHandle" parameterType="com.ld.igds.inout.dto.InoutData">
        update D_INOUT_RECORD set
        <if test="data.deHandle != null">DE_HANDLE_ = #{data.deHandle},</if>
        <if test="data.handleUser != null">HANDLE_USER_ = #{data.handleUser},</if>
        <if test="data.deOther != null">DE_OTHER_ = #{data.deOther},</if>
        <if test="data.deOtherInfo != null">DE_OTHER_INFO_ = #{data.deOtherInfo},</if>
        <if test="data.dePackage != null">DE_PACKAGE_ = #{data.package},</if>
        <if test="data.bzw != null">bzw = #{data.bzw},</if>
        <if test="data.dbz != null">dbz = #{data.dbz},</if>
        <if test="data.bzbjs != null">bzbjs = #{data.bzbjs},</if>
        <if test="data.remarks != null">REMARKS_ = #{data.remarks},</if>
        UPDATE_TIME_  = #{data.updateTime}
        where
        company_id_ =#{data.companyId}
        and id_=#{data.id}
    </update>
    <!-- æ–°å¢žæ•°æ® -->
    <insert id="insertData" parameterType="com.ld.igds.inout.dto.InoutData">
igds-web/src/main/resources/application-dev.yml
@@ -47,7 +47,6 @@
    host: 127.0.0.1
    port: 6379
    password: Abc123..
    # è¿žæŽ¥æ± æœ€å¤§è¿žæŽ¥æ•°ï¼ˆä½¿ç”¨è´Ÿå€¼è¡¨ç¤ºæ²¡æœ‰é™åˆ¶ï¼‰
    pool:
      max-active: 200
      max-wait: -1
igds-web/src/main/resources/static/admin/inout/in-handle.js
@@ -1,327 +1,296 @@
//值仓
//称重-包括空车和满车称重
var layer;
var form;
var upload;
var plateNum = null;
var recordData = null;// ä¸šåŠ¡æ•°æ®ä¿¡æ¯
var paramIntelCard;//设备识别结果
var paramIdCard;//设备识别结果
var img1, img2, img3;// é¡µé¢ä¸­çš„图片上传名称
$(function() {
    layui.use([ 'layer', 'laydate', 'form', 'upload'], function() {
        upload = layui.upload;
        layer = layui.layer;
        form = layui.form;
$(function () {
    layui.use(['layer', 'laydate', 'form', 'upload'], function () {
        upload = layui.upload;
        layer = layui.layer;
        form = layui.form;
        layui.laydate.render({
            elem : '#handleEnd',
            type : "datetime",
            theme : '#7b8e9f'
        });
        layui.laydate.render({
            elem : '#handleStart',
            type : "datetime",
            theme : '#7b8e9f'
        });
        //上传
        upload.render({
            elem: '#kccz-r-btn1',
            url: '../file/update-file', //上传接口
            size: 4 * 1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept: 'images',
            before: function (obj) {
                var plateNum = $("#plateNum").val();
                this.data = {"plateNum": plateNum, "type": "1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function (index, file, result) {
                    $('#kccz-r-img1').attr('src', result); //图片链接(base64)
                });
            },
            done: function (res) {
                //如果上传失败
                if (res.code > 0) {
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img1 = res.msg;
                layer.msg("图片上传成功!");
                //console.log(img1);
            }
        });
        upload.render({
            elem: '#kccz-r-btn2',
            url: '../file/update-file', //上传接口
            size: 4 * 1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept: 'images',
            before: function (obj) {
                var plateNum = $("#plateNum").val();
                this.data = {"plateNum": plateNum, "type": "1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function (index, file, result) {
                    $('#kccz-r-img2').attr('src', result); //图片链接(base64)
                });
            },
            done: function (res) {
                //如果上传失败
                if (res.code > 0) {
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img2 = res.msg;
                layer.msg("图片上传成功!");
                // console.log(img2);
            }
        });
        upload.render({
            elem: '#kccz-r-btn3',
            url: '../file/update-file', //上传接口
            size: 4 * 1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept: 'images',
            before: function (obj) {
                var plateNum = $("#plateNum").val();
                this.data = {"plateNum": plateNum}; //携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function (index, file, result) {
                    $('#kccz-r-img3').attr('src', result); //图片链接(base64)
                });
            },
            done: function (res) {
                //如果上传失败
                if (res.code > 0) {
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img3 = res.msg;
                layer.msg("图片上传成功!");
            }
        });
        //上传
        upload.render({
            elem: '#kccz-r-btn1',
            url: '../file/update-file', //上传接口
            size: 4*1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept : 'images',
            before: function(obj){
                var plateNum = $("#plateNum").val();
                this.data={"plateNum":plateNum,"type":"1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#kccz-r-img1').attr('src', result); //图片链接(base64)
                });
            },
            done: function(res){
                //如果上传失败
                if(res.code > 0){
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img1 = res.msg;
                layer.msg("图片上传成功!");
                //console.log(img1);
            }
        });
        upload.render({
            elem: '#kccz-r-btn2',
            url: '../file/update-file', //上传接口
            size: 4*1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept : 'images',
            before: function(obj){
                var plateNum = $("#plateNum").val();
                this.data={"plateNum":plateNum,"type":"1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#kccz-r-img2').attr('src', result); //图片链接(base64)
                });
            },
            done: function(res){
                //如果上传失败
                if(res.code > 0){
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img2 = res.msg;
                layer.msg("图片上传成功!");
                // console.log(img2);
            }
        });
        upload.render({
            elem: '#kccz-r-btn3',
            url: '../file/update-file', //上传接口
            size: 4*1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept : 'images',
            before: function(obj){
                var plateNum = $("#plateNum").val();
                this.data={"plateNum":plateNum}; //携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#kccz-r-img3').attr('src', result); //图片链接(base64)
                });
            },
            done: function(res){
                //如果上传失败
                if(res.code > 0){
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img3 = res.msg;
                layer.msg("图片上传成功!");
            }
        });
    });
    });
    showProgress();
    //调整字段不编辑
    $("#depotId").attr("disabled",true);
    $("#foodVariety").attr("disabled",true);
    $("#foodLevel").attr("disabled",true);
    //显示流程环节
    showProgress();
});
//控制流程环节显示
function showProgress() {
    if(!inoutProgress){
        return;
    }
    if(inoutProgress.indexOf("REGISTER") == -1){
        $("#progress-register").css("display", "none");
    }
    if(inoutProgress.indexOf("CHECK") == -1){
        $("#progress-check").css("display", "none");
    }
    if(inoutProgress.indexOf("WEIGHT_FULL") == -1){
        $("#progress-fullWeight").css("display", "none");
    }
    if(inoutProgress.indexOf("HANDLE") == -1){
        $("#progress-hand").css("display", "none");
    }
    if(inoutProgress.indexOf("WEIGHT_EMPTY") == -1){
        $("#progress-emptyWeight").css("display", "none");
    }
    if(inoutProgress.indexOf("CARD_BACK") == -1){
        $("#progress-cardBack").css("display", "none");
    }
}
//新的读卡方式
//读智慧卡
function flushICCard() {
    $("#intelCard").val(null);
    resetForm();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/ICCARD",
        data: {},
        dataType: "jsonp",
        jsonp: "callback",
        jsonpCallback: "jsonpCallback",
        success: function (json) {
            //console.log(json);
            var data = json.no;
            //console.log(data);
            if (data === "not found") {
                layer.alert("请重新读卡!", {offset: ['300px', '300px']});
            } else {
                $("#intelCard").val(data);
                flushData();
            }
        },
        error: function () {
            layer.alert("IC卡读取出错!", {offset: ['300px', '300px']});
        }
    });
    if (!cardDto.protocol) {
        flushICCard1();
    } else {
        flushICCard2();
    }
}
// ä½¿ç”¨æ’件获取省份证
/**
 * åè®®è¯»å–智慧卡
 */
function flushICCard2() {
    var index = layer.load();
    var param = JSON.stringify(cardDto);
    $.ajax({
        type: "POST",
        url: "../../inout/api/get-icCard",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                alertError(result.msg);
            } else {
                paramIntelCard = data;
                $("#text-param").text("识别卡号:" + paramIntelCard);
                flushData(paramIntelCard, null);
            }
        },
        error: function () {
            layer.close(index);
            alertError("IC卡读取失败");
        }
    });
}
/**
 * æœ¬åœ°è¯»å–智慧卡
 */
function flushICCard1() {
    var index = layer.load();
    $("#text-param").val(null);
    $("#form-data")[0].reset();
    form.render();
    recordData = null;
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/ICCARD",
        data: {},
        dataType: "jsonp",
        jsonp: "callback",
        jsonpCallback: "jsonpCallback",
        success: function (json) {
            var data = json.no;
            layer.close(index);
            if (data === "not found") {
                alertError("请重新读卡!");
            } else {
                paramIntelCard = data;
                $("#text-param").text("识别卡号:" + paramIntelCard);
                flushData(paramIntelCard, null);
            }
        },
        error: function () {
            layer.close(index);
            alertError("IC卡读取出错!");
        }
    });
}
// ä½¿ç”¨æ’件获取身份证
function flushIdCard() {
    var index = layer.load();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/IDCARD",
        data: {},
        dataType: "jsonp",
        jsonp: "callback",
        jsonpCallback: "jsonpCallback",
        success: function (json) {
            layer.close(index);
            var data = json.content;
            if (data === "not found") {
                layer.alert("没有读取到身份证信息,请手动录入!", {
                    offset: ['300px', '300px']
                });
                return;
            }
            $("#userId").val(data.idNum);
            flushData();
        },
        error: function () {
            layer.alert("身份证读取失败,请手动录入!", {
                offset: ['300px', '300px']
            });
            layer.close(index);
        }
    });
    var index = layer.load();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/IDCARD",
        data: {},
        dataType: "jsonp",
        jsonp: "callback",
        jsonpCallback: "jsonpCallback",
        success: function (json) {
            layer.close(index);
            var data = json.content;
            if (data === "not found") {
                alertError("没有读取到身份证信息!");
                return;
            }
            paramIdCard = data;
            $("#text-param").text("识别身份证:" + paramIdCard);
            flushData(null, paramIdCard);
        },
        error: function () {
            alertError("没有读取到身份证信息!");
            layer.close(index);
        }
    });
}
// æ‰“印抽样单
function printBill() {
    layer.alert("打印格式待定义……");
function flushByHand() {
    flushData(null, null);
}
// è¡¨å•清空
function resetForm() {
    $("#form-data")[0].reset();
    //清除图片
    $('#kccz-r-img1').removeAttr('src');
    $('#kccz-r-img2').removeAttr('src');
    $('#kccz-r-img3').removeAttr('src');
    form.render();
    recordData = null;
    $("#form-data")[0].reset();
    form.render();
    recordData = null;
    $("#text-param").val(null);
}
// æ›´æ–°æ•°æ®ä¿¡æ¯
function flushData() {
    var userId2 = $("#userId").val();
    var plateNum = $("#plateNum").val();
    var intelCard = $("#intelCard").val();
    var param = {
        type : type,
        progress : progress,
        userId:userId2,
        intelCard:intelCard,
        plateNum : plateNum
    };
    var index = layer.load();
    $.ajax({
        type : "POST",
        url : "../../basic/inout/inout-query",
        dataType : "json",
        contentType : "application/json;charset=UTF-8",
        data : JSON.stringify(param),
        success : function(result) {
            layer.close(index);
            if (result.code != "0000") {
                notify(result.msg,result.data);
            } else {
                recordData = result.data;
                // è¿”回的数据进行赋值
                form.val("form-data", recordData);
                form.render();
            }
        },
        error : function() {
            layer.close(index);
            layer.alert("查询失败,请重新尝试!!");
        }
    });
function flushPage() {
    layer.confirm('确定要刷新页面吗?', {icon: 3, title: '提示'}, function (index) {
        resetForm();
        layer.close(index);
    });
}
// --查询方法,获取身份证号、卡号、车牌号,进行查询
function flushData(intelCard, userIdCard) {
    var index = layer.load();
    var userIdCard = userIdCard;
    var intelCard = intelCard;
    var plateNum = $("#plateNum").val();
    var param = {
        type: type,
        progress: progress,
        intelCard: intelCard,
        userId: userIdCard,
        plateNum: plateNum
    };
    $.ajax({
        type: "POST",
        url: "../../basic/inout/inout-query",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(param),
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                notifyProgress(result.msg, result.data);
            } else {
                recordData = result.data;
                // è¿”回的数据进行赋值
                form.val("form-data", recordData);
                form.render();
            }
        },
        error: function () {
            layer.close(index);
            alertError("查询失败,请重新尝试");
        }
    });
}
// å½“前完成
function submit() {
    if (null == recordData) {
        layer.alert("没有数据可以提交!!!");
        return;
    }
    var index = layer.load();
    var data = form.val("form-data");
    if (!recordData) {
        alertError("没有业务数据信息,执行被拒绝");
        return;
    }
    var data = form.val("form-data");
    // åˆå¹¶æ›´æ–°ç•¶å‰ç¼–辑数据
    Object.assign(recordData, data);
    if (!data.handleUser) {
        alertError("提示:值仓人不可为空");
        return;
    }
    // èŽ·å–å›¾ç‰‡åç§°
    recordData.files = [{
        fileName: img1
    }, {
        fileName: img2
    }, {
        fileName: img3
    }];
    // èŽ·å–ç…§ç‰‡
    var files = [{
        fileName: snapData.fileName1
    }, {
        fileName: snapData.fileName2
    }, {
        fileName: snapData.fileName3
    }];
    data.files = files;
    console.log(recordData);
    $.ajax({
        type : "POST",
        url : "../../basic/inout/inout-next-step",
        dataType : "json",
        contentType : "application/json;charset=UTF-8",
        data : JSON.stringify(recordData),
        success : function(result) {
            if (result.code != "0000") {
                notify(result.msg,result.data);
            } else {
                notify("值仓完成",result.data);
                // é‡ç½®é¡µé¢
                resetForm();
            }
            layer.close(index);
        },
        error : function() {
            layer.close(index);
            layer.alert("提交失败,请重新尝试!!");
        }
    });
}
/**
 * å¼¹å‡ºæé†’框
 * @param msg æé†’信息
 * @param data æ•°æ®ä¿¡æ¯ï¼Œå¯èƒ½ä¸ºç©º
 */
function notify(msg, data) {
    if (data) {
        //赋值
        $("#resultMsg").text(msg);
        $("#resultUserName").text(data.userName);
        $("#resultPlateNum").text(data.plateNum);
        if ("IN" == data.type) {
            $("#resultType").text("入库-" + INOUT_PROGRESS_MSG(data.progress));
        } else {
            $("#resultType").text("出库-" + INOUT_PROGRESS_MSG(data.progress));
        }
        $("#resultIntelCard").text(data.intelCard);
        layer.open({
            type: 1,
            offset: ['150px', '200px'],
            area: '450px;',
            shade: 0.8,
            id: 'dialog_notify_info',
            btn: ['确定'],
            content: $('#dialog-from-notify'),
            yes: function (index) {
                layer.closeAll();
            }
        });
    } else {
        layer.alert(msg, {offset: ['300px', '300px']});
    }
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "../../basic/inout/submit-handle",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(data),
        success: function (result) {
            if (result.code != "0000") {
                notify(result.msg, result.data);
            } else {
                notify("数据提交成功", result.data);
            }
            layer.close(index);
        },
        error: function () {
            layer.close(index);
            alertError("提交失败,请重新尝试");
        }
    });
}
igds-web/src/main/resources/static/admin/inout/in-handle20230506.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,327 @@
//值仓
var layer;
var form;
var upload;
var plateNum = null;
var recordData = null;// ä¸šåŠ¡æ•°æ®ä¿¡æ¯
var img1, img2, img3;// é¡µé¢ä¸­çš„图片上传名称
$(function() {
    layui.use([ 'layer', 'laydate', 'form', 'upload'], function() {
        upload = layui.upload;
        layer = layui.layer;
        form = layui.form;
        layui.laydate.render({
            elem : '#handleEnd',
            type : "datetime",
            theme : '#7b8e9f'
        });
        layui.laydate.render({
            elem : '#handleStart',
            type : "datetime",
            theme : '#7b8e9f'
        });
        //上传
        upload.render({
            elem: '#kccz-r-btn1',
            url: '../file/update-file', //上传接口
            size: 4*1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept : 'images',
            before: function(obj){
                var plateNum = $("#plateNum").val();
                this.data={"plateNum":plateNum,"type":"1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#kccz-r-img1').attr('src', result); //图片链接(base64)
                });
            },
            done: function(res){
                //如果上传失败
                if(res.code > 0){
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img1 = res.msg;
                layer.msg("图片上传成功!");
                //console.log(img1);
            }
        });
        upload.render({
            elem: '#kccz-r-btn2',
            url: '../file/update-file', //上传接口
            size: 4*1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept : 'images',
            before: function(obj){
                var plateNum = $("#plateNum").val();
                this.data={"plateNum":plateNum,"type":"1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#kccz-r-img2').attr('src', result); //图片链接(base64)
                });
            },
            done: function(res){
                //如果上传失败
                if(res.code > 0){
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img2 = res.msg;
                layer.msg("图片上传成功!");
                // console.log(img2);
            }
        });
        upload.render({
            elem: '#kccz-r-btn3',
            url: '../file/update-file', //上传接口
            size: 4*1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept : 'images',
            before: function(obj){
                var plateNum = $("#plateNum").val();
                this.data={"plateNum":plateNum}; //携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#kccz-r-img3').attr('src', result); //图片链接(base64)
                });
            },
            done: function(res){
                //如果上传失败
                if(res.code > 0){
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img3 = res.msg;
                layer.msg("图片上传成功!");
            }
        });
    });
    showProgress();
    //调整字段不编辑
    $("#depotId").attr("disabled",true);
    $("#foodVariety").attr("disabled",true);
    $("#foodLevel").attr("disabled",true);
});
//控制流程环节显示
function showProgress() {
    if(!inoutProgress){
        return;
    }
    if(inoutProgress.indexOf("REGISTER") == -1){
        $("#progress-register").css("display", "none");
    }
    if(inoutProgress.indexOf("CHECK") == -1){
        $("#progress-check").css("display", "none");
    }
    if(inoutProgress.indexOf("WEIGHT_FULL") == -1){
        $("#progress-fullWeight").css("display", "none");
    }
    if(inoutProgress.indexOf("HANDLE") == -1){
        $("#progress-hand").css("display", "none");
    }
    if(inoutProgress.indexOf("WEIGHT_EMPTY") == -1){
        $("#progress-emptyWeight").css("display", "none");
    }
    if(inoutProgress.indexOf("CARD_BACK") == -1){
        $("#progress-cardBack").css("display", "none");
    }
}
//新的读卡方式
function flushICCard() {
    $("#intelCard").val(null);
    resetForm();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/ICCARD",
        data: {},
        dataType: "jsonp",
        jsonp: "callback",
        jsonpCallback: "jsonpCallback",
        success: function (json) {
            //console.log(json);
            var data = json.no;
            //console.log(data);
            if (data === "not found") {
                layer.alert("请重新读卡!", {offset: ['300px', '300px']});
            } else {
                $("#intelCard").val(data);
                flushData();
            }
        },
        error: function () {
            layer.alert("IC卡读取出错!", {offset: ['300px', '300px']});
        }
    });
}
// ä½¿ç”¨æ’件获取省份证
function flushIdCard() {
    var index = layer.load();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/IDCARD",
        data: {},
        dataType: "jsonp",
        jsonp: "callback",
        jsonpCallback: "jsonpCallback",
        success: function (json) {
            layer.close(index);
            var data = json.content;
            if (data === "not found") {
                layer.alert("没有读取到身份证信息,请手动录入!", {
                    offset: ['300px', '300px']
                });
                return;
            }
            $("#userId").val(data.idNum);
            flushData();
        },
        error: function () {
            layer.alert("身份证读取失败,请手动录入!", {
                offset: ['300px', '300px']
            });
            layer.close(index);
        }
    });
}
// æ‰“印抽样单
function printBill() {
    layer.alert("打印格式待定义……");
}
// è¡¨å•清空
function resetForm() {
    $("#form-data")[0].reset();
    //清除图片
    $('#kccz-r-img1').removeAttr('src');
    $('#kccz-r-img2').removeAttr('src');
    $('#kccz-r-img3').removeAttr('src');
    form.render();
    recordData = null;
}
// æ›´æ–°æ•°æ®ä¿¡æ¯
function flushData() {
    var userId2 = $("#userId").val();
    var plateNum = $("#plateNum").val();
    var intelCard = $("#intelCard").val();
    var param = {
        type : type,
        progress : progress,
        userId:userId2,
        intelCard:intelCard,
        plateNum : plateNum
    };
    var index = layer.load();
    $.ajax({
        type : "POST",
        url : "../../basic/inout/inout-query",
        dataType : "json",
        contentType : "application/json;charset=UTF-8",
        data : JSON.stringify(param),
        success : function(result) {
            layer.close(index);
            if (result.code != "0000") {
                notify(result.msg,result.data);
            } else {
                recordData = result.data;
                // è¿”回的数据进行赋值
                form.val("form-data", recordData);
                form.render();
            }
        },
        error : function() {
            layer.close(index);
            layer.alert("查询失败,请重新尝试!!");
        }
    });
}
// å½“前完成
function submit() {
    if (null == recordData) {
        layer.alert("没有数据可以提交!!!");
        return;
    }
    var index = layer.load();
    var data = form.val("form-data");
    // åˆå¹¶æ›´æ–°ç•¶å‰ç¼–辑数据
    Object.assign(recordData, data);
    // èŽ·å–å›¾ç‰‡åç§°
    recordData.files = [{
        fileName: img1
    }, {
        fileName: img2
    }, {
        fileName: img3
    }];
    console.log(recordData);
    $.ajax({
        type : "POST",
        url : "../../basic/inout/inout-next-step",
        dataType : "json",
        contentType : "application/json;charset=UTF-8",
        data : JSON.stringify(recordData),
        success : function(result) {
            if (result.code != "0000") {
                notify(result.msg,result.data);
            } else {
                notify("值仓完成",result.data);
                // é‡ç½®é¡µé¢
                resetForm();
            }
            layer.close(index);
        },
        error : function() {
            layer.close(index);
            layer.alert("提交失败,请重新尝试!!");
        }
    });
}
/**
 * å¼¹å‡ºæé†’框
 * @param msg æé†’信息
 * @param data æ•°æ®ä¿¡æ¯ï¼Œå¯èƒ½ä¸ºç©º
 */
function notify(msg, data) {
    if (data) {
        //赋值
        $("#resultMsg").text(msg);
        $("#resultUserName").text(data.userName);
        $("#resultPlateNum").text(data.plateNum);
        if ("IN" == data.type) {
            $("#resultType").text("入库-" + INOUT_PROGRESS_MSG(data.progress));
        } else {
            $("#resultType").text("出库-" + INOUT_PROGRESS_MSG(data.progress));
        }
        $("#resultIntelCard").text(data.intelCard);
        layer.open({
            type: 1,
            offset: ['150px', '200px'],
            area: '450px;',
            shade: 0.8,
            id: 'dialog_notify_info',
            btn: ['确定'],
            content: $('#dialog-from-notify'),
            yes: function (index) {
                layer.closeAll();
            }
        });
    } else {
        layer.alert(msg, {offset: ['300px', '300px']});
    }
}
igds-web/src/main/resources/static/admin/inout/in-weight.js
@@ -7,6 +7,7 @@
var timerWeight;
var paramIntelCard;//设备识别结果
var paramIdCard;//设备识别结果
var step = 1;
$(function () {
    layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () {
@@ -324,6 +325,8 @@
    weightDto.weight = 0.0;
    $("#weightValue").text("0.0");
    $("#img_scale_statule").attr("src", "../../static/images/icon-red.png");
    $("#text-param").val(null);
}
function flushPage() {
@@ -473,7 +476,7 @@
        data: JSON.stringify(recordData),
        success: function (result) {
            if (result.code != "0000") {
                notify(result.msg, result.data);
                alertError(result.msg);
            } else {
                notify("数据提交成功", result.data);
            }
igds-web/src/main/resources/templates/admin/inout/in-handle.html
@@ -1,540 +1,570 @@
<!DOCTYPE html>
<html lang="zh-cn" xmlns:th=http://www.thymeleaf.org>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport"
          content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <title>出入库管理-值仓管理</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport"
          content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <title>出入库管理-值仓管理</title>
    <link rel="stylesheet" type="text/css"
          th:href="@{../../static/plugins/layui/css/layui.css}">
    <link rel="stylesheet" type="text/css"
          th:href="@{../../static/admin/inout/style.css}">
    <link rel="stylesheet" type="text/css"
          th:href="@{../../static/plugins/layui/css/layui.css?v=2.5.5}">
    <link rel="stylesheet" type="text/css"
          th:href="@{../../static/admin/inout/style.css}">
    <style>
        .kccz-r-btnbox {
            width: 86px !important;
        }
    <style>
        .display-none {
            display: none;
        }
        .kccz-r-btn {
            width: 86px !important;
        }
        .layui-select-disabled .layui-disabled {
            color: #000 !important;
        }
        #text-param {
            font-size: 14px;
            color: red;
            padding-left: 10px;
        }
        .depot-food input {
            line-height: 34px;
            padding-right: 10px;
            font-size: 16px;
            color: #666;
            background: #eff4f6;
        }
        .display-none {
            display: none;
        }
        .rk-step-wrap {
            padding: 0px;
            border-bottom: 0px;
            text-align: center;
        }
        .cursor {
            cursor: pointer;
        }
        .qyzj-btnbox {
            margin-top: 10px;
        }
        .kccz-czxx-dl dt {
            width: 25px;
            height: 24px;
            color: #000;
            font-size: 18px;
        }
        .qyzj-btnbox .rkbk-quick {
            margin-top: 20px;
        }
        .kccz-left-box2 {
            height: 555px;
        }
        .kccz-data-btnbox {
            min-height: 38px;
            padding-top: 2px;
        }
        .kccz-con {
            margin: 15px 0;
        }
        .rkbk-search-btn {
            width: 100px;
        }
    </style>
        .color-red {
            color: red !important;
        }
        .layui-table td {
            font-weight: bold;
        }
        .layui-select-disabled .layui-disabled {
            color: #000 !important;
        }
        .depot-food input {
            line-height: 34px;
            padding-right: 10px;
            font-size: 16px;
            color: #666;
            background: #eff4f6;
        }
        .rk-step-wrap {
            padding: 0px;
            border-bottom: 0px;
            text-align: center;
        }
        .rkbk-quick {
            margin-top: 15px !important;
        }
        .kccz-con {
            margin: 10px 0px;
        }
        .border-no {
            border: 0px;
        }
        .qyzj-btnbox {
            margin-top: 10px;
        }
        .kccz-data-btnbox {
            min-height: 38px;
            padding-top: 2px;
        }
        .layui-layer-title {
            font-weight: bold;
        }
        .rkbk-search-btn {
            width: 100px;
            height: 30px;
            line-height: 30px;
            font-size: 16px;
        }
        .r-240 {
            right: 240px;
        }
        .r-120 {
            right: 120px;
        }
        .rkbk-search-input {
            background: #FFF !important;
        }
        .rkbk-search-input.bg-date {
            background: #FFF !important;
        }
        #scaleName {
            width: 130px;
            height: 28px;
        }
    </style>
</head>
<body>
<div class="l-container layui-clear">
    <div class="rk-main">
    <div class="rk-main">
        <div class="qyzj-btnbox layui-clear">
        <div class="qyzj-btnbox layui-clear">
            <div class="rkbk-quick fl">
                <button class="rkbk-quick-btn layui-btn btn-green btn-sm"
                        onclick="submit()">
                    <i><img th:src="@{../../static/images/icon-ok.png}"/></i>值仓完成
                </button>
            </div>
            <!-- æµç¨‹å¼•导-->
            <div class="rk-step-wrap  fr">
                <ul class="rk-step">
                    <li id="progress-register" class="active rk-step-first">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-dengji.png}"/>
                            </span>
                        <p>入库登记</p>
                    </li>
                    <li id="progress-check" class="active">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-zhijian.png}"/>
                            </span>
                        <p>扦样质检</p>
                    </li>
                    <li id="progress-fullWeight" class="active">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-chengzhong.png}"/>
                            </span>
                        <p>满车称重</p>
                    </li>
                    <li id="progress-hand" class="active">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-xiehuo.png}"/>
                            </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="progress-emptyWeight">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-chengzhong.png}"/>
                            </span>
                        <p>空车称重</p>
                    </li>
                    <li id="progress-cardBack">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-banli.png}"/>
                            </span>
                        <p>离库确认</p>
                    </li>
                </ul>
            </div>
            <!-- æµç¨‹å¼•导 END -->
        </div>
        <!--qyzj-btnbox end-->
            <div class="rkbk-quick fl">
                <button id="btn-submit"
                        class="rkbk-quick-btn layui-btn btn-green" onclick="submit()">
                    <i><img th:src="@{../../static/images/icon-ok.png}"/></i>值仓完成
                </button>
                <button class="rkbk-quick-btn layui-btn btn-violet"
                        onclick="flushPage()">
                    <i><img th:src="@{../../static/images/icon-shuaxin2.png}"/></i>刷新页面
                </button>
            </div>
            <!-- æµç¨‹å¼•导 -->
            <div class="rk-step-wrap fr">
                <ul class="rk-step">
                    <li id="progress-register" class="active rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{../../static/images/icon-dengji.png}"/>
                        </span>
                        <p>入库登记</p>
                    </li>
                    <li id="progress-check" class="active">
                        <span class="rk-step-span">
                            <img th:src="@{../../static/images/icon-zhijian.png}"/>
                        </span>
                        <p>扦样质检</p>
                    </li>
                    <li id="progress-fullWeight" class="active">
                        <span class="rk-step-span">
                            <img th:src="@{../../static/images/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="progress-hand" class="">
                        <span class="rk-step-span">
                            <img th:src="@{../../static/images/icon-xiehuo.png}"/>
                        </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="progress-emptyWeight" class="">
                        <span class="rk-step-span">
                            <img th:src="@{../../static/images/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{../../static/images/icon-banli.png}"/>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
            </div>
            <!-- æµç¨‹å¼•导EDN -->
        </div>
        <!--qyzj-btnbox end-->
        <div class="kccz-con">
            <div class="kccz-left radius-6 fl bg-ef">
        <div class="kccz-con">
            <div class="kccz-left fl">
                <div class="kccz-left-box2 radius-6">
                    <div class="rkbk-tit">
                        <i></i>
                        <h3>业务数据信息<span id="text-param"></span></h3>
                        <div>
                            <input type="button" value="读智慧卡"
                                   class="rkbk-search-btn layui-btn r-240"
                                   onclick="flushICCard()">
                            <input type="button" value="读身份证"
                                   class="rkbk-search-btn layui-btn r-120"
                                   onclick="flushIdCard()">
                            <input type="button" value="手动查询"
                                   class="rkbk-search-btn layui-btn" onclick="flushByHand()">
                        </div>
                    </div>
                <div class="kccz-left-box2 ">
                    <div class="kccz-data-form layui-row">
                        <form class="layui-form" action="" id="form-data"
                              lay-filter="form-data">
                            <div class="layui-form-item display-none">
                                <input type="text" name="id">
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="progress">
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="type">
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="deptId">
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="companyId">
                            </div>
                    <div class="rkbk-tit">
                        <i></i>
                        <h3>入库信息</h3>
                    </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">智慧卡号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="intelCard" id="intelCard"
                                               placeholder="刷卡/手动录入" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                    <div class="kccz-data-form layui-row">
                        <form class="layui-form" action="" id="form-data"
                              lay-filter="form-data">
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-ID</label>
                                <div class="layui-input-block">
                                    <input type="text" name="id" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">车牌号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="plateNum" id="plateNum" placeholder="自动带入/手动录入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-流程节点</label>
                                <div class="layui-input-block">
                                    <input type="text" name="progress" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">承运人</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userName" placeholder="不可编辑" class="layui-input"
                                               disabled>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-业务类型</label>
                                <div class="layui-input-block">
                                    <input type="text" name="type" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-通知单id</label>
                                <div class="layui-input-block">
                                    <input type="text" name="noticeId" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">身份证号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userId" id="userId"
                                               placeholder="承运人身份证号" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">毛重(满车)</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="fullWeight" autocomplete="off"
                                               placeholder="不可编辑" class="layui-input rkbk-search-input" disabled>
                                        <em
                                                class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">车牌号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="plateNum" id="plateNum"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">皮重(空车)</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="emptyWeight" autocomplete="off"
                                               placeholder="不可编辑" class="layui-input rkbk-search-input"
                                               disabled>
                                        <em
                                                class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <div class="layui-col-xs4 kccz-data-btnbox">
                                        <input type="button" value="读身份证"
                                               class="rkbk-search-btn layui-btn"
                                               onclick="flushIdCard()">
                                    </div>
                                    <div class="layui-col-xs4 kccz-data-btnbox">
                                        <input type="button" value="读卡"
                                               class="rkbk-search-btn layui-btn"
                                               onclick="flushICCard()">
                                    </div>
                                    <div class="layui-col-xs4 kccz-data-btnbox">
                                        <input type="button" value="查&nbsp;&nbsp;询"
                                               class="rkbk-search-btn layui-btn" onclick="flushData()">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">净&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="netWeight" autocomplete="off"
                                               placeholder="不可编辑" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">智慧卡号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="intelCard" id="intelCard"
                                               placeholder="智慧卡号" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">客户信息</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="customerName" placeholder="不可编辑"
                                               autocomplete="off" class="layui-input" disabled="disabled">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">空车称重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="emptyWeight" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">装卸仓库</label>
                                    <div class="layui-input-block">
                                        <select name="depotId" id="depotId" lay-filter="select_depotId">
                                            <option value="">不可编辑</option>
                                            <option th:each="depot,depotSet:${listDepot}"
                                                    th:value="${depot.id}" th:text="${depot.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">满车称重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="fullWeight" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">装卸仓库</label>
                                    <div class="layui-input-block">
                                        <select name="depotId" id="depotId">
                                            <option value="">不可改</option>
                                            <option th:each="depot,depotSet:${listDepot}"
                                                    th:value="${depot.id}" th:text="${depot.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">粮食产地</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="foodLocation" placeholder="不可编辑"
                                               autocomplete="off" class="layui-input" disabled="disabled">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">净&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="netWeight" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">现场扣重</label>
                                    <div class="layui-input-block">
                                        <input id="deHandle" type="text" name="deHandle" placeholder="请输入"
                                               autocomplete="off" class="layui-input weight"> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">包装扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="dePackage" autocomplete="off"
                                               placeholder="请输入" class="layui-input"> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item kccz-data-group-md">
                                    <label class="layui-form-label">杂质扣重</label>
                                    <div class="posi-r kccz-data-bfb fr">
                                        <input type="text" name="impurity" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">%</em>
                                    </div>
                                    <div class="layui-input-block">
                                        <div class="posi-r">
                                            <input type="text" name="deImpurity" placeholder="不可改"
                                                   autocomplete="off" class="layui-input rkbk-search-input"
                                                   disabled> <em class="kccz-data-dw">KG</em>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">往来单位</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="customerName" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">粮食等级</label>
                                    <div class="layui-input-block">
                                        <select name="foodLevel" id="foodLevel">
                                            <option value="">不可改</option>
                                            <option th:each="dic,dicSet:${listFoodLevel}"
                                                    th:value="${dic.code}" th:text="${dic.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">值仓人</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="handleUser" autocomplete="off"
                                               placeholder="手动录入" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item kccz-data-group-md">
                                    <label class="layui-form-label">水分扣重</label>
                                    <div class="posi-r kccz-data-bfb fr">
                                        <input type="text" name="wet" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">%</em>
                                    </div>
                                    <div class="layui-input-block">
                                        <div class="posi-r">
                                            <input type="text" name="deWet" placeholder="不可改"
                                                   autocomplete="off" class="layui-input rkbk-search-input"
                                                   disabled> <em class="kccz-data-dw">KG</em>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">粮食品种</label>
                                    <div class="layui-input-block">
                                        <select name="foodVariety" id="foodVariety">
                                            <option value="">不可改</option>
                                            <option th:each="dic,dicSet:${listFoodVariety}"
                                                    th:value="${dic.code}" th:text="${dic.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">其他扣重</label>
                                    <div class="layui-input-block">
                                        <input id="deOther" type="text" name="deOther" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">其他扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deOther" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">总扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deSum" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs8">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">其他说明</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deOtherInfo" autocomplete="off"
                                               placeholder="其他扣重说明" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">值仓开始</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="handleStart" id="handleStart"
                                               placeholder="å¹´-月-日 æ—¶:分" autocomplete="off"
                                               class="layui-input bg-date">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">现场扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deHandle" placeholder="请输入"
                                               autocomplete="off" class="layui-input"> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">包装物</label>
                                    <div class="layui-input-block">
                                        <input type="radio" name="bzw" value="1" title="麻袋">
                                        <input type="radio" name="bzw"
                                               value="2" title="编织袋">
                                        <input type="radio" name="bzw"
                                               value="3" title="散装" checked>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">扣重后净重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="settleWeight" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">值仓结束</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="handleEnd" id="handleEnd"
                                               placeholder="å¹´-月-日 æ—¶:分" autocomplete="off"
                                               class="layui-input bg-date">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs12">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">备&nbsp;注</label>
                                    <div class="layui-input-block">
                                            <textarea name="remarks" placeholder="请输入内容"
                                                      class="layui-textarea"></textarea>
                                    </div>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <!--kccz-left-box2 end-->
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">标准包重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="dbz" autocomplete="off"
                                               placeholder="请输入" class="layui-input"> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
            </div>
            <!--kccz-left end-->
            <div class="kccz-right fr bg-ef">
                <div class="kccz-r-item radius-6">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录1</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img1"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn1"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">包件总数</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="bzbjs" autocomplete="off"
                                               placeholder="请输入" class="layui-input"> <em
                                            class="kccz-data-dw">ä»¶</em>
                                    </div>
                                </div>
                            </div>
                    </div>
                            <div class="layui-col-xs12">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">备注说明</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="remarks" placeholder="请输入内容"
                                               class="layui-input">
                                    </div>
                                </div>
                            </div>
                </div>
                <!--kccz-r-item end-->
                        </form>
                    </div>
                </div>
                <!--kccz-left-box2 end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录2</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img2"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn2"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
            </div>
            <!--kccz-left end-->
            <div class="kccz-right fr bg-ef">
                <div class="kccz-r-item radius-6">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录1</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img1"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn1"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
                </div>
                <!--kccz-r-item end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录3</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img3"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn3"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录2</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img2"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn2"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
                </div>
                <!--kccz-r-item end-->
            </div>
        </div>
        <!--kccz-con end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录3</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img3"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn3"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
    </div>
    <!--rk-main end-->
                    </div>
                </div>
                <!--kccz-r-item end-->
            </div>
        </div>
        <!--kccz-con end-->
    </div>
    <!--rk-main end-->
</div>
<!--l-container end-->
<script th:inline="javascript">
    var inoutProgress = [[${inoutProgress}]];
    var progress = [[${progress}]];
    var deptId = [[${deptId}]];
    var listDepot = [[${listDepot}]];
    //业务步骤
    var bizType = [[${bizType}]];
    //userId
    var userId = [[${loginUser.username}]];
    //出入库类型
    var type = [[${type}]];
    var companyId = [[${loginUser.companyId}]];
    //品种
    var listFoodVariety = [[${listFoodVariety}]];
</script>
<script th:inline="javascript">
    //流程环节
    var inoutProgress = [[${inoutProgress}]];
    var progress = [[${progress}]];
    var deptId = [[${deptId}]];
    var listDepot = [[${listDepot}]];
    //业务步骤
    var bizType = [[${bizType}]];
    //userId
    var userId = [[${loginUser.username}]];
    //出入库类型
    var type = [[${type}]];
    var companyId = [[${loginUser.companyId}]];
    //智慧卡
    var cardDto = [[${cardDto}]];
    var ship = null; //是否船运页面标识
</script>
<script th:src="@{../../static/plugins/layui/layui.js}"></script>
<script th:src="@{../../static/js/jquery.min.js}"></script>
<script th:src="@{../../static/js/constant.js}"></script>
<script th:src="@{../../static/js/igds-common.js}"></script>
<script th:src="@{../../static/admin/inout/inout-common.js}"></script>
<script th:src="@{../../static/admin/inout/in-handle.js}"></script>
</body>
<!-- å¼¹å‡ºæ¡†çš„信息 -->
<div class="layui-tab-content" id="dialog-from-notify"
     style="display: none;">
    <table class="layui-table">
        <colgroup>
            <col width="100">
        </colgroup>
        <tbody>
        <tr>
            <td>返回信息</td>
            <td id="resultMsg" style="color: red; font-weight: bold;"></td>
        </tr>
        <tr>
            <td>承运人</td>
            <td id="resultUserName" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>车牌号</td>
            <td id="resultPlateNum" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>下一步</td>
            <td id="resultType" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>智慧卡号</td>
            <td id="resultIntelCard" style="font-weight: bold;"></td>
        </tr>
        </tbody>
    </table>
<div class="layui-tab-content" id="dialog-from-notify" style="display: none;">
    <table class="layui-table">
        <colgroup>
            <col width="100">
        </colgroup>
        <tbody>
        <tr>
            <td>返回信息</td>
            <td id="resultMsg" style="color: red;font-weight: bold;"></td>
        </tr>
        <tr>
            <td>承运人</td>
            <td id="resultUserName" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>车牌号</td>
            <td id="resultPlateNum" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>下一步</td>
            <td id="resultType" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>智慧卡号</td>
            <td id="resultIntelCard" style="font-weight: bold;"></td>
        </tr>
        </tbody>
    </table>
</div>
</html>
igds-web/src/main/resources/templates/admin/inout/in-handle20230605.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,540 @@
<!DOCTYPE html>
<html lang="zh-cn" xmlns:th=http://www.thymeleaf.org>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport"
          content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <title>出入库管理-值仓管理</title>
    <link rel="stylesheet" type="text/css"
          th:href="@{../../static/plugins/layui/css/layui.css?v=2.5.5}">
    <link rel="stylesheet" type="text/css"
          th:href="@{../../static/admin/inout/style.css}">
    <style>
        .display-none {
            display: none;
        }
        .layui-select-disabled .layui-disabled {
            color: #000 !important;
        }
        .depot-food input {
            line-height: 34px;
            padding-right: 10px;
            font-size: 16px;
            color: #666;
            background: #eff4f6;
        }
        .rk-step-wrap {
            padding: 0px;
            border-bottom: 0px;
            text-align: center;
        }
        .qyzj-btnbox {
            margin-top: 10px;
        }
        .qyzj-btnbox .rkbk-quick {
            margin-top: 20px;
        }
        .kccz-data-btnbox {
            min-height: 38px;
            padding-top: 2px;
        }
        .kccz-con {
            margin: 15px 0;
        }
        .rkbk-search-btn {
            width: 100px;
        }
    </style>
</head>
<body>
<div class="l-container layui-clear">
    <div class="rk-main">
        <div class="qyzj-btnbox layui-clear">
            <div class="rkbk-quick fl">
                <button class="rkbk-quick-btn layui-btn btn-green btn-sm"
                        onclick="submit()">
                    <i><img th:src="@{../../static/images/icon-ok.png}"/></i>值仓完成
                </button>
            </div>
            <!-- æµç¨‹å¼•导-->
            <div class="rk-step-wrap  fr">
                <ul class="rk-step">
                    <li id="progress-register" class="active rk-step-first">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-dengji.png}"/>
                            </span>
                        <p>入库登记</p>
                    </li>
                    <li id="progress-check" class="active">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-zhijian.png}"/>
                            </span>
                        <p>扦样质检</p>
                    </li>
                    <li id="progress-fullWeight" class="active">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-chengzhong.png}"/>
                            </span>
                        <p>满车称重</p>
                    </li>
                    <li id="progress-hand" class="active">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-xiehuo.png}"/>
                            </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="progress-emptyWeight">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-chengzhong.png}"/>
                            </span>
                        <p>空车称重</p>
                    </li>
                    <li id="progress-cardBack">
                            <span class="rk-step-span">
                                <img th:src="@{../../static/images/icon-banli.png}"/>
                            </span>
                        <p>离库确认</p>
                    </li>
                </ul>
            </div>
            <!-- æµç¨‹å¼•导 END -->
        </div>
        <!--qyzj-btnbox end-->
        <div class="kccz-con">
            <div class="kccz-left radius-6 fl bg-ef">
                <div class="kccz-left-box2 ">
                    <div class="rkbk-tit">
                        <i></i>
                        <h3>入库信息</h3>
                    </div>
                    <div class="kccz-data-form layui-row">
                        <form class="layui-form" action="" id="form-data"
                              lay-filter="form-data">
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-ID</label>
                                <div class="layui-input-block">
                                    <input type="text" name="id" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-流程节点</label>
                                <div class="layui-input-block">
                                    <input type="text" name="progress" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-业务类型</label>
                                <div class="layui-input-block">
                                    <input type="text" name="type" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏字段-通知单id</label>
                                <div class="layui-input-block">
                                    <input type="text" name="noticeId" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">身份证号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userId" id="userId"
                                               placeholder="承运人身份证号" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">车牌号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="plateNum" id="plateNum"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <div class="layui-col-xs4 kccz-data-btnbox">
                                        <input type="button" value="读身份证"
                                               class="rkbk-search-btn layui-btn"
                                               onclick="flushIdCard()">
                                    </div>
                                    <div class="layui-col-xs4 kccz-data-btnbox">
                                        <input type="button" value="读卡"
                                               class="rkbk-search-btn layui-btn"
                                               onclick="flushICCard()">
                                    </div>
                                    <div class="layui-col-xs4 kccz-data-btnbox">
                                        <input type="button" value="查&nbsp;&nbsp;询"
                                               class="rkbk-search-btn layui-btn" onclick="flushData()">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">智慧卡号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="intelCard" id="intelCard"
                                               placeholder="智慧卡号" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">空车称重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="emptyWeight" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">满车称重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="fullWeight" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">装卸仓库</label>
                                    <div class="layui-input-block">
                                        <select name="depotId" id="depotId">
                                            <option value="">不可改</option>
                                            <option th:each="depot,depotSet:${listDepot}"
                                                    th:value="${depot.id}" th:text="${depot.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">净&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="netWeight" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item kccz-data-group-md">
                                    <label class="layui-form-label">杂质扣重</label>
                                    <div class="posi-r kccz-data-bfb fr">
                                        <input type="text" name="impurity" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">%</em>
                                    </div>
                                    <div class="layui-input-block">
                                        <div class="posi-r">
                                            <input type="text" name="deImpurity" placeholder="不可改"
                                                   autocomplete="off" class="layui-input rkbk-search-input"
                                                   disabled> <em class="kccz-data-dw">KG</em>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">往来单位</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="customerName" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">粮食等级</label>
                                    <div class="layui-input-block">
                                        <select name="foodLevel" id="foodLevel">
                                            <option value="">不可改</option>
                                            <option th:each="dic,dicSet:${listFoodLevel}"
                                                    th:value="${dic.code}" th:text="${dic.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item kccz-data-group-md">
                                    <label class="layui-form-label">水分扣重</label>
                                    <div class="posi-r kccz-data-bfb fr">
                                        <input type="text" name="wet" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">%</em>
                                    </div>
                                    <div class="layui-input-block">
                                        <div class="posi-r">
                                            <input type="text" name="deWet" placeholder="不可改"
                                                   autocomplete="off" class="layui-input rkbk-search-input"
                                                   disabled> <em class="kccz-data-dw">KG</em>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">粮食品种</label>
                                    <div class="layui-input-block">
                                        <select name="foodVariety" id="foodVariety">
                                            <option value="">不可改</option>
                                            <option th:each="dic,dicSet:${listFoodVariety}"
                                                    th:value="${dic.code}" th:text="${dic.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">其他扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deOther" autocomplete="off" placeholder="不可改"
                                               class="layui-input rkbk-search-input" disabled> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">总扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deSum" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">值仓开始</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="handleStart" id="handleStart"
                                               placeholder="å¹´-月-日 æ—¶:分" autocomplete="off"
                                               class="layui-input bg-date">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">现场扣重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="deHandle" placeholder="请输入"
                                               autocomplete="off" class="layui-input"> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">扣重后净重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="settleWeight" placeholder="不可改"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">值仓结束</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="handleEnd" id="handleEnd"
                                               placeholder="å¹´-月-日 æ—¶:分" autocomplete="off"
                                               class="layui-input bg-date">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs12">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">备&nbsp;注</label>
                                    <div class="layui-input-block">
                                            <textarea name="remarks" placeholder="请输入内容"
                                                      class="layui-textarea"></textarea>
                                    </div>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <!--kccz-left-box2 end-->
            </div>
            <!--kccz-left end-->
            <div class="kccz-right fr bg-ef">
                <div class="kccz-r-item radius-6">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录1</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img1"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn1"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录2</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img2"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn2"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录3</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img3"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn3"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
            </div>
        </div>
        <!--kccz-con end-->
    </div>
    <!--rk-main end-->
</div>
<!--l-container end-->
<script th:inline="javascript">
    var inoutProgress = [[${inoutProgress}]];
    var progress = [[${progress}]];
    var deptId = [[${deptId}]];
    var listDepot = [[${listDepot}]];
    //业务步骤
    var bizType = [[${bizType}]];
    //userId
    var userId = [[${loginUser.username}]];
    //出入库类型
    var type = [[${type}]];
    var companyId = [[${loginUser.companyId}]];
    //品种
    var listFoodVariety = [[${listFoodVariety}]];
</script>
<script th:src="@{../../static/plugins/layui/layui.js}"></script>
<script th:src="@{../../static/js/jquery.min.js}"></script>
<script th:src="@{../../static/js/constant.js}"></script>
<script th:src="@{../../static/js/igds-common.js}"></script>
<script th:src="@{../../static/admin/inout/in-handle.js}"></script>
</body>
<!-- å¼¹å‡ºæ¡†çš„信息 -->
<div class="layui-tab-content" id="dialog-from-notify"
     style="display: none;">
    <table class="layui-table">
        <colgroup>
            <col width="100">
        </colgroup>
        <tbody>
        <tr>
            <td>返回信息</td>
            <td id="resultMsg" style="color: red; font-weight: bold;"></td>
        </tr>
        <tr>
            <td>承运人</td>
            <td id="resultUserName" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>车牌号</td>
            <td id="resultPlateNum" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>下一步</td>
            <td id="resultType" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>智慧卡号</td>
            <td id="resultIntelCard" style="font-weight: bold;"></td>
        </tr>
        </tbody>
    </table>
</div>
</html>