自动化立体仓库 - WMS系统
Junjie
3 天以前 ca2a6d455604056ce628f296911f6abac85a7598
Merge remote-tracking branch 'origin/ytflWms' into ytflWms
40个文件已修改
300 ■■■■ 已修改文件
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
license.lic 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastLog.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocDetlService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AdminInterceptor.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/entity/NccQilibcTmprintWms.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/entity/NccSaleDbddWms.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/PlanOrderTask.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/UserController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/config.properties 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/license.lic 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/LocDetlMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderPakinMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ViewWorkInMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/nc/NccQilibcTmprintWmsMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/nc/NccSaleDbddWmsMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetlStatis/locDetlStatis.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderPakout/out.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/user/user.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/wrkMast/wrkMast.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/wrkMastLog/wrkMastLog.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locDetlStatis/locDetlStatis.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/report/viewWorkIn.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/report/viewWorkOut.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/user/user.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/wrkDetlLog/wrkDetlLog.html 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -33,3 +33,4 @@
### LOG ###
stock
LOG_PATH_IS_UNDEFINED
license.lic
license.lic
Binary files differ
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -379,9 +379,13 @@
                    @RequestParam Map<String, Object> param) {
        Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class));
        for (LocDetl locDetl : stockStatis.getRecords()) {
            Double weight = locDetl.getWeight();
            String standby1 = locDetl.getStandby1();
            Mat mat = matService.selectByMatnr(locDetl.getMatnr());
            if (mat != null) {
                locDetl.sync(mat);
                locDetl.setStandby1(standby1);
                locDetl.setWeight(weight);
            }
        }
        return R.ok().add(stockStatis);
@@ -420,4 +424,14 @@
        return R.ok(sum);
    }
    /**
     * 获取库存总数
     * @return
     */
    @RequestMapping("/locDetl/count2")
    public R getAllCount2(){
        Integer sum = locDetlService.sum2();
        return R.ok(sum);
    }
}
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -290,6 +290,7 @@
        matParam.setAnfme(0.0D);
        matParam.setAnfme2(0.0D);
        matParam.setTiaoma(nccQilibcTmprintWms.getBarcode());
        matParam.setStandby1(nccQilibcTmprintWms.getCkbm());
        return R.ok().add(matParam);
    }
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -446,7 +446,10 @@
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
            if(Cools.isEmpty(user.getNickname())){
                return String.valueOf(user.getUsername());
            }
            return String.valueOf(user.getNickname());
        }
        return null;
    }
src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -463,7 +463,10 @@
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
            if(Cools.isEmpty(user.getNickname())){
                return String.valueOf(user.getUsername());
            }
            return String.valueOf(user.getNickname());
        }
        return null;
    }
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -87,6 +87,8 @@
    Integer sum();
    Integer sum2();
    List<LocDetl> unreason();
    Double selectLocDetlSumQty(String locNo);
src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -76,6 +76,8 @@
    Integer sum();
    Integer sum2();
    List<LocDetl> unreason();
    Double getLocDetlSumQty(String locNo);
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -152,6 +152,15 @@
        return this.baseMapper.sum();
    }
    /**
     * 获取库存总数
     * @return
     */
    @Override
    public Integer sum2() {
        return this.baseMapper.sum2();
    }
    @Override
    public List<LocDetl> unreason() {
        return this.baseMapper.unreason();
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -86,6 +86,8 @@
        Object process2 = null;
        String memo = order.getMemo();
        String remark = "";
        boolean success = false;
        log.info("订单开始上报:{}", JSON.toJSONString(order));
        try {
            switch (order.getDocType$().toString()) {
                case "销售退货":
@@ -95,6 +97,7 @@
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("销售发货response:{}", response);
                        step = 10;
                        success = true;
                    } else {
                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                    }
@@ -106,6 +109,7 @@
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("销售发货response:{}", response);
                        step = 10;
                        success = true;
                    } else {
                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                    }
@@ -117,6 +121,7 @@
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("转库-入库response:{}", response);
                        step = 10;
                        success = true;
                    } else {
                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                    }
@@ -146,6 +151,7 @@
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("转库-出库2response:{}", response);
                            step = 10;
                            success = true;
                        } else {
                            remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                        }
@@ -168,6 +174,7 @@
                            if (!Cools.isEmpty(response) && response.isSuccess()) {
                                log.info("转库-出库2response:{}", response);
                                step = 10;
                                success = true;
                            } else {
                                remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                            }
@@ -181,6 +188,7 @@
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("集团内部调拨response:{}", response);
                        step = 10;
                        success = true;
                    } else {
                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                    }
@@ -203,7 +211,7 @@
            e.printStackTrace();
            throw new CoolException("调用接口报错,请联系管理员");
        } finally {
            reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery);
            reportApiLog(order, process1, process2, response, order.getDocType$(), nyncIp, saveRefDelivery, success);
        }
    }
@@ -580,16 +588,19 @@
    }
    private Boolean reportApiLog(Object data, String docType, String url, String path) {
        String response = "";
        boolean success = false;
    private Boolean reportApiLog(Order order, Object process1, Object process2, Object response, String docType, String url, String path, Boolean success) {
        HashMap<String, Object> request = new HashMap<>();
        request.put("order", order);
        request.put("process1", process1);
        request.put("process2", process2);
        apiLogService.save(
                docType,
                url + path,
                null,
                "127.0.0.1",
                JSON.toJSONString(data),
                response,
                JSON.toJSONString(request),
                JSON.toJSONString(response),
                success
        );
        return false;
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -85,7 +85,7 @@
                    log.error("单据[orderNo={}]转执行表失败", order.getOrderNo());
                }
            } catch (Exception e) {
                log.error(e.getMessage());
                e.printStackTrace();
                log.error("单据[orderNo={}]转执行表失败", order.getOrderNo());
            }
        }
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -7,6 +7,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.MathUtils;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.model.DetlDto;
@@ -97,6 +98,7 @@
        for (OrderDetl detail : orderDetls) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getBrand(), detail.getStandby1(), detail.getStandby2(), detail.getStandby3(), detail.getBoxType1(), detail.getBoxType2(), detail.getBoxType3(), detail.getAnfme());
            dto.setOrderNo(detail.getOrderNo());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3());
                assert detlDto != null;
@@ -105,6 +107,8 @@
                OrderDetl orderDetl = OrderDetl.find(orderDetlList, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3());
                assert orderDetl != null;
                orderDetl.setAnfme(MathUtils.add(orderDetl.getAnfme(), detail.getAnfme()));
                Double weight = MatUtils.calcWeight(orderDetl.getMatnr(), orderDetl.getAnfme());
                orderDetl.setWeight(weight);
            } else {
                list.add(dto);
                orderDetlList.add(detail);
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -111,7 +111,7 @@
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
                            if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
//                                exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("全板入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -343,7 +343,7 @@
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
                            if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
//                                exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("并板入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -406,7 +406,7 @@
                    for (WrkDetl wrkDetl : wrkDetls57) {
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
                            if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
//                                exceptionHandle("盘点入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("盘点入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -119,8 +119,8 @@
            User user = userService.selectById(userLogin.getUserId());
//            String deToken = Cools.deTokn(token, user.getPassword());
//            long timestamp = Long.parseLong(deToken.substring(0, 13));
            // 15分钟后过期
            if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 900000){
            // 24小时后过期
            if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 86400000){
                Http.response(response, BaseRes.DENIED);
                return false;
            }
src/main/java/com/zy/common/service/CommonService.java
@@ -231,7 +231,7 @@
                //尝试找1号弯轨堆垛机库位
                crnNo = 1;
                if (basCrnpService.checkSiteError(crnNo, true)) {
                    List<Integer> nearRowList = new ArrayList<Integer>(){{add(3);add(4);add(1);add(6);}};
                    List<Integer> nearRowList = new ArrayList<Integer>(){{add(4);add(6);add(3);add(1);}};
                    for (Integer near : nearRowList) {
                        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                                .eq("row1", near)
@@ -298,7 +298,7 @@
                                .eq("crn_no", locMast1.getCrnNo())
                                .eq("bay1", locMast1.getBay1())
                                .notIn("loc_sts", "O")
                                .orderBy("row1", true)
                                .orderBy("row1", false)
                        );
                        if (locMastList.isEmpty()) {
                            locMast = locMast1;
src/main/java/com/zy/nc/entity/NccQilibcTmprintWms.java
@@ -56,4 +56,9 @@
     */
    private BigDecimal nastnum;
    /**
     *
     */
    private String ckbm;
}
src/main/java/com/zy/nc/entity/NccSaleDbddWms.java
@@ -14,9 +14,14 @@
@Data
public class NccSaleDbddWms {
    /**
     *
     *
     */
    @TableId
    private String cbill_bid;
    /**
     *
     */
    private String cbillid;
    /**
src/main/java/com/zy/nc/task/PlanOrderTask.java
@@ -46,12 +46,19 @@
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute1() {
        List<String> ids = storeTypeService.listOwn();
        List<String> Ids = nccSaleXsfhmxWmsService.selectXsfh(ids);
        List<String> warehouseIds = storeTypeService.listOwn();
        List<String> Ids = nccSaleXsfhmxWmsService.selectXsfh(warehouseIds);
        for (String id : Ids) {
            List<NccSaleXsfhmxWms> wmsFlag = nccSaleXsfhmxWmsService.selectList(new EntityWrapper<NccSaleXsfhmxWms>().eq("vbillcode", id).ne("wms_flag", 1).eq("fstatusflag", 2).eq("hdr", 0).eq("bdr", 0));
            List<NccSaleXsfhmxWms> wmsFlag = nccSaleXsfhmxWmsService.selectList(new EntityWrapper<NccSaleXsfhmxWms>()
                    .eq("vbillcode", id)
                    .ne("wms_flag", 1)
                    .eq("fstatusflag", 2)
                    .eq("hdr", 0)
                    .eq("bdr", 0)
                    .in("fhckbm",warehouseIds)
            );
            if (wmsFlag == null || wmsFlag.isEmpty()) {
                return;
                continue;
            }
            ReturnT<String> returnT = planOrderHandler.start1(wmsFlag);
            if (!returnT.isSuccess()) {
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -8,10 +8,7 @@
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.entity.param.OpenOrderPakoutParam;
import com.zy.asrs.service.InventoryCheckOrderDetlService;
import com.zy.asrs.service.InventoryCheckOrderService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OpenService;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.model.DetlDto;
@@ -58,6 +55,8 @@
    @Autowired
    private OpenService openService;
    @Autowired
    private StoreTypeService storeTypeService;
    /**
     * 发货
@@ -67,9 +66,14 @@
    @Transactional
    public ReturnT<String> start1(List<NccSaleXsfhmxWms> wmsFlag) {
        try {
            List<String> ids = storeTypeService.listOwn();
            HashMap<String, List<NccSaleXsfhmxWms>> map = new HashMap<>();
            List<NccSaleXsfhmxWms> fenzu;
            for (NccSaleXsfhmxWms wms : wmsFlag) {
                if(!ids.contains(wms.getFhckbm())){
                    continue;
                }
                if (map.get(wms.getFhckbm()) == null) {
                    fenzu = new ArrayList<>();
                    fenzu.add(wms);
@@ -321,28 +325,52 @@
    @Transactional
    public ReturnT<String> start5(List<NccSaleDbddWms> wmsFlag) {
        try {
            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
            param.setOrderType("集团内部调拨");
            DetlDto detlDto;
            List<DetlDto> orderDetails = new ArrayList<>();
            long i = 1;
            for (NccSaleDbddWms nccCgCgdhdWms : wmsFlag) {
                log.info("nccCgCgdhdWms数据:{}", JSONObject.toJSON(nccCgCgdhdWms));
                detlDto = new DetlDto();
                detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
                detlDto.setWeight(nccCgCgdhdWms.getFsl().doubleValue());
                detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                orderDetails.add(detlDto);
                i++;
                nccCgCgdhdWms.setWmsFlag(1);
                param.setOrderNo(nccCgCgdhdWms.getVbillcode());
            List<String> ids = storeTypeService.listOwn();
            HashMap<String, List<NccSaleDbddWms>> map = new HashMap<>();
            List<NccSaleDbddWms> fenzu;
            for (NccSaleDbddWms wms : wmsFlag) {
                if(!ids.contains(wms.getDcckbm())){
                    continue;
                }
                if (map.get(wms.getDcckbm()) == null) {
                    fenzu = new ArrayList<>();
                    fenzu.add(wms);
                    map.put(wms.getDcckbm(), fenzu);
                } else {
                    fenzu = map.get(wms.getDcckbm());
                    fenzu.add(wms);
                    map.put(wms.getDcckbm(), fenzu);
                }
            }
            param.setOrderDetails(orderDetails);
            openService.pakoutOrderCreate(param);
            nccSaleDbddWmsService.updateBatchById(wmsFlag);
            int size = 1;
            for (String key : map.keySet()) {
                OpenOrderPakoutParam param = new OpenOrderPakoutParam();
                param.setOrderType("集团内部调拨");
                DetlDto detlDto;
                List<DetlDto> orderDetails = new ArrayList<>();
                long i = 1;
                for (NccSaleDbddWms nccSaleDbddWms : map.get(key)) {
                    log.info("nccSaleDbddWms数据:{}", JSONObject.toJSON(nccSaleDbddWms));
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccSaleDbddWms.getWlbm());
                    detlDto.setAnfme(nccSaleDbddWms.getZsl().doubleValue());
                    detlDto.setWeight(nccSaleDbddWms.getFsl().doubleValue());
                    detlDto.setBatch(nccSaleDbddWms.getVbatchcode());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccSaleDbddWms));
                    detlDto.setStandby1(nccSaleDbddWms.getDcckbm());
                    orderDetails.add(detlDto);
                    i++;
                    param.setOrderNo(nccSaleDbddWms.getVbillcode() + "-" + size);
                    param.setCstmrName(nccSaleDbddWms.getDrkczzmc());
                    nccSaleDbddWms.setWmsFlag(1);
                }
                param.setOrderDetails(orderDetails);
                openService.pakoutOrderCreate(param);
                nccSaleDbddWmsService.updateBatchById(map.get(key));
                size++;
            }
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
src/main/java/com/zy/system/controller/UserController.java
@@ -120,6 +120,9 @@
        if(user.getRoleId() != null) {
            entity.setRoleId(user.getRoleId());
        }
        if(user.getNickname()!=null) {
            entity.setNickname(user.getNickname());
        }
        userService.updateById(entity);
        return R.ok();
    }
src/main/resources/application.yml
@@ -86,8 +86,8 @@
# 用友NC对接
NYNC:
  ip: http://192.168.5.200
  port: 1105
  ip: http://192.168.5.160
  port: 8088
  pageSize: 1000
  #1.销售出库单参照发货单新增
  saveRefDelivery: /nccloud/api/ic/saleout/saveRefDelivery
src/main/resources/config.properties
@@ -1,7 +1,7 @@
#####不变参数
client_id=WMS
client_secret=b5ee040e00584e518c06
pubKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhxRFEtPfreu+ROWtC5IQZVy1Vkkqi0Fk7A4tGvyfLIw2qPNLWrTmCJeJwXLmgiB+EU0RW9U8jFYRAhSKaQY1HTjHMZcXdfH6m7WitT+sIyDVfTO3wVWtvjFBF1o6qi+T7pNsmCjstArnm/OS55kn0zJcRiTTwP1UU1LrkQbytf9ZHOcbKfqjIL8amsinjdxd6ioUM3JT3PpOXCIRDHsQgvAnFx2q7Y902S0PFzc40FwtuwsuKqesvEbIImUcq1wbIDtMegixy+TfJMWcByNLp2iv8/+Zos+hePhfWRPlD2x0vk30xDXMiUVgq0dhxC5C3yeD2QEbLxIlDqK2WebzZQIDAQAB
client_secret=748378be87a94b7889b0
pubKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn4uBKrgJ2TZ4frpUtjuKMKggZu/FFeT2rvu5o0UWKmNCuwlOBQdWItqEV3qFIO+pWI7JMDT400sGrZSZtnGkU5LzmF70HuE1a0WSaOH/2fJyb7JnK/3dVpPx5MOL3vfXCq0eq/iSbXwi9aB0wgp9toh0vgK0S5I+xI9OhnN3k4EuLjCJ55wGPgyYMcCuDW4+FqZBfI5s2NDg7h4Q+zjsqWgAAMM/kw4oKQOzmgBOiiWPmMVOkzt9h4Y7/+uIghFUHf0jHqVvC/AwysAIszdmYY8llUtscIuw+w9pxVAcmwcFI/Ky+xUEKouwPI1SM0D2oe6fcA3+/Co4xuiuhwhNTwIDAQAB
secret_level=L0
#autotest=ture
@@ -18,7 +18,7 @@
## 服务器地址
#baseUrl=http://10.16.7.160:9088
#baseUrl=http://10.10.4.166:9080
baseUrl=http://192.168.5.200:1105
baseUrl=http://192.168.5.160:8088
#baseUrl=http://192.168.61.18:21322
#baseUrl=https://ncc.yyncc.com
src/main/resources/license.lic
Binary files differ
src/main/resources/mapper/asrs/LocDetlMapper.xml
@@ -386,11 +386,13 @@
            ROW_NUMBER() over (order by sum(a.anfme) desc) as row
            , a.matnr
            , a.batch
            , a.standby1
            , sum(a.anfme) as anfme
            , sum(a.weight) as weight
            from asr_loc_detl a
            where 1=1
            <include refid="stockOutCondition"></include>
            group by a.matnr, a.batch
            group by a.matnr, a.batch , a.standby1
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
@@ -588,6 +590,9 @@
    <select id="sum" resultType="java.lang.Integer">
        SELECT SUM(anfme) FROM asr_loc_detl
    </select>
    <select id="sum2" resultType="java.lang.Integer">
        SELECT SUM(weight) FROM asr_loc_detl
    </select>
    <select id="unreason" resultMap="BaseResultMap">
        SELECT
            *
src/main/resources/mapper/asrs/OrderMapper.xml
@@ -71,7 +71,7 @@
    </update>
    <select id="selectComplete" resultMap="BaseResultMap">
        select top 5 *
        select top 100 *
        from man_order
        where 1=1
        and settle = 4
src/main/resources/mapper/asrs/OrderPakinMapper.xml
@@ -56,7 +56,7 @@
    </update>
    <select id="selectComplete" resultMap="BaseResultMap">
        select top 5 *
        select top 100 *
        from man_order_pakin
        where 1=1
        and settle = 4
@@ -65,7 +65,7 @@
    </select>
    <select id="selectComplete8" resultMap="BaseResultMap">
        select top 5 *
        select top 100 *
        from man_order_pakin
        where 1=1
        and settle = 8
src/main/resources/mapper/asrs/ViewWorkInMapper.xml
@@ -14,6 +14,9 @@
        <if test="anfme != null and anfme != ''">
            and anfme = #{anfme}
        </if>
        <if test="order_no != null and order_no != ''">
            and order_no like '%' + #{order_no} + '%'
        </if>
<!--        <if test="maktx!=null and maktx!='' ">-->
<!--            and (maktx like '%' + #{maktx} + '%'-->
<!--            or matnr like '%' + #{maktx} + '%'-->
src/main/resources/mapper/nc/NccQilibcTmprintWmsMapper.xml
@@ -14,6 +14,7 @@
            <result property="asnnum" column="ASNNUM" />
            <result property="pkMaterial" column="PK_MATERIAL" />
            <result property="nastnum" column="NASTNUM" />
            <result property="ckbm" column="ckbm" />
    </resultMap>
</mapper>
src/main/resources/mapper/nc/NccSaleDbddWmsMapper.xml
@@ -5,7 +5,8 @@
<mapper namespace="com.zy.nc.mapper.NccSaleDbddWmsMapper">
    <resultMap id="BaseResultMap" type="com.zy.nc.entity.NccSaleDbddWms">
        <id property="cbillid" column="CBILLID" />
        <id property="cbill_bid" column="CBILL_BID" />
        <result property="cbillid" column="CBILLID" />
        <result property="vbillcode" column="VBILLCODE" />
        <result property="dbilldate" column="DBILLDATE" />
        <result property="taudittime" column="TAUDITTIME" />
src/main/webapp/static/js/locDetlStatis/locDetlStatis.js
@@ -3,8 +3,9 @@
    var cols = [
        {field: 'anfme', align: 'center',title: '库存数量', style: 'font-weight: bold'}
    ];
    arrRemove(detlCols, "field", "anfme")
    arrRemove(detlCols, "field", "zpallet")
    arrRemove(detlCols, "field", "orderNo")
    arrRemove(detlCols, "field", "supp")
    cols.push.apply(cols, detlCols);
    // cols.push({field: 'anfme', align: 'center',title: '数量', style: 'font-weight: bold'}
    // )
@@ -72,6 +73,19 @@
                }
            });
            /**
             * 显示库存总数量
             */
            $.ajax({
                url: baseUrl+"/locDetl/count2",
                headers: {'token': localStorage.getItem('token')},
                contentType:'application/json;charset=UTF-8',
                method: 'POST',
                success: function (res) {
                    $("#countNum2").text(res.data + '个');
                }
            });
        }
    });
src/main/webapp/static/js/orderPakout/out.js
@@ -32,6 +32,7 @@
            {type: 'checkbox'}
            ,{type: 'numbers', title: '#'}
            ,{field: 'orderNo', align: 'center',title: '单据编号', templet: '#orderNoTpl', width: 160}
            ,{field: 'standby1$', align: 'center',title: '出库仓库', width: 160}
            ,{field: 'matnr', align: 'center',title: '商品编码', width: 160}
            ,{field: 'maktx', align: 'center',title: '商品名称', width: 200}
            ,{field: 'batch', align: 'center',title: '批次'}
src/main/webapp/static/js/user/user.js
@@ -24,7 +24,7 @@
        cols: [[
            {type: 'checkbox'}
            // ,{field: 'hostName', align: 'center',title: '授权商户', templet: '#hostTpl', width: 140}
            // ,{field: 'nickname', align: 'center',title: '用户名'}
            ,{field: 'nickname', align: 'center',title: '用户名'}
            ,{field: 'username', align: 'center',title: '登录账户'}
            ,{field: 'mobile', align: 'center',title: '手机号'}
            // ,{field: 'deptName', align: 'center',title: '所属部门'}
src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -55,7 +55,7 @@
            // ,{field: 'crnStrTime$', align: 'center',title: '堆垛机启动时间'}
            // ,{field: 'crnEndTime$', align: 'center',title: '堆垛机停止时间'}
            // ,{field: 'refIotime$', align: 'center',title: '拣料时间'}
            ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
            ,{field: 'modiUser$', align: 'center',title: '操作人员'}
            ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true, width: 160}
            // ,{field: 'memo', align: 'center',title: '备注'}
            //
src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -55,7 +55,7 @@
            // ,{field: 'crnStrTime$', align: 'center',title: '堆垛机启动时间'}
            // ,{field: 'crnEndTime$', align: 'center',title: '堆垛机停止时间'}
            // ,{field: 'plcStrTime$', align: 'center',title: '拣料时间'}
            ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
            ,{field: 'modiUser$', align: 'center',title: '操作人员'}
            ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true}
            // ,{field: 'appeUser$', align: 'center',title: '创建者',event: 'appeUser', style: 'cursor:pointer'}
            // ,{field: 'appeTime$', align: 'center',title: '添加时间'}
src/main/webapp/views/locDetlStatis/locDetlStatis.html
@@ -34,6 +34,14 @@
            </div>
        </fieldset>
    </div>
    <div class="layui-inline">
        <fieldset class="layui-elem-field">
            <legend>总计辅数量</legend>
            <div class="layui-field-box" id="countNum2">
                请稍等
            </div>
        </fieldset>
    </div>
</div>
<!-- 表格 -->
src/main/webapp/views/order/order.html
@@ -107,6 +107,9 @@
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">完结</a>
    {{# } }}
    {{# if (d.settle == 4) { }}
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>
    {{# } }}
</script>
<!-- 表格操作列 -->
<script type="text/html" id="tbLook">
src/main/webapp/views/report/viewWorkIn.html
@@ -31,17 +31,22 @@
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="批次" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="order_no" placeholder="订单编号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="zpallet" placeholder="托盘码" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="货品特征" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
src/main/webapp/views/report/viewWorkOut.html
@@ -31,17 +31,22 @@
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="批次" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="order_no" placeholder="订单编号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="zpallet" placeholder="托盘码" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="货品特征" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
src/main/webapp/views/user/user.html
@@ -136,6 +136,12 @@
                        <input name="email" placeholder="请输入邮箱" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">名称</label>
                    <div class="layui-input-block">
                        <input name="nickname" placeholder="请输入名称" class="layui-input">
                    </div>
                </div>
            </div>
        </div>
src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
@@ -36,17 +36,17 @@
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="批次" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="zpallet" placeholder="托盘码" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="货品特征" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">