自动化立体仓库 - WMS系统
ef012984e2a1d92e4a35844c6dce92ebb66c7c87..c7a31680a32a45c7d47af5162eb8edcb9824d16a
2025-12-24 1
Merge remote-tracking branch 'origin/jshdasrs' into jshdasrs
c7a316 对比 | 目录
2025-12-24 1
#
7d6ec7 对比 | 目录
2025-12-23 lsh
#getArmType$
ebb5fa 对比 | 目录
9个文件已修改
170 ■■■■ 已修改文件
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasAgvLocDetlMapper.xml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasAgvLocNoMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
@@ -206,6 +206,9 @@
                    OrderToLine orderToLine = new OrderToLine();
                    orderToLine.setOrderNo(boxType3);  //单据编号
                    orderToLine.setCreateTime(System.currentTimeMillis());  //创建时间
                    if(items.size() < 1){
                        continue;
                    }
                    OrderToLine orderToLineR = ToSortLineUtils.GetOrderToLine(items, orderToLine,"Opt3");
                    try{
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
@@ -32,7 +32,7 @@
    @Value("${erp.switch.ReviewOrderSwitch}")
    private boolean ReviewOrderSwitch;
//    @Scheduled(cron = "0/20 * * * * ?")
    @Scheduled(cron = "0/20 * * * * ?")
    @Async("orderThreadPool")
    public void completeAndReport(){
        if(!ReviewOrderSwitch){
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -599,7 +599,7 @@
                                        orderDetl.setBoxType3(pOrderNo);//采购单号
                                        orderDetl.setMemo(memo);//英文备注
                                        orderDetl.setVolume(Totalvolume);//总体积
                                        orderDetl.setSafeQty(totalNumItems);//总件数
                                        orderDetl.setPrice(totalNumItems);//总件数
                                        orderDetl.setManu(warehouse);//仓库编码
                                        orderDetl.setCreateBy(9527L);
                                        orderDetl.setCreateTime(new Date());
@@ -1578,7 +1578,8 @@
                                String s1 = entry.getString("eap7_textfield7"); //客户PO
                                String detlId = entry.getString("id"); //明细id
                                Long seq = entry.getLong("seq"); //分录行号
//                                String suppCode = entry.getString("supplier_number");
                                String manubillid = entry.getString("orderid_id");
                                String manuentryid = entry.getString("mftentryid");
                                String suppCode = null;
                                if (anfme == null || anfme == 0) {
                                    callApiLogSaveOrder(order, kingDeeUtilType,
@@ -1609,6 +1610,8 @@
                                // ========= 保存明细 =========
                                OrderDetl orderDetl = new OrderDetl();
                                orderDetl.sync(mat);
                                orderDetl.setModel(manubillid);//orderid_id
                                orderDetl.setBrand(manuentryid);//manuentryid
                                orderDetl.setThreeCode(detlId);
                                orderDetl.setLineNumber(seq);
                                orderDetl.setAnfme(anfmeBox);
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -178,22 +178,44 @@
                    JSONObject billentryLk = new JSONObject()
                            .fluentPut("id", 0L)
                            .fluentPut("seq", orderDetl.getLineNumber())
                            .fluentPut("billentry_lk_stableid", 677270092232273922L)
                            .fluentPut("billentry_lk_stableid", 1014628189722381313L)
                            .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName()))  // 主单ID
                            .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode()))  // 明细ID
                            .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme())  // ERP数量
                            .fluentPut("billentry_lk_baseqty", qty);  // 作业数量
                            .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())); // 明细ID
//                            .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme())  // ERP数量
//                            .fluentPut("billentry_lk_baseqty", qty);  // 作业数量
                    billentryLkArray1.add(billentryLk);
                    // 创建 billentry 对象,填充缺失的字段
                    JSONObject billentry = new JSONObject()
                            .fluentPut("id", 0L)
                            .fluentPut("warehouse_number", orderDetl.getManu())  // 仓库编号
                            .fluentPut("qty", qty)  // 数量
                            .fluentPut("baseqty", qty)
                            .fluentPut("baseqty", orderDetl.getErpAnfme())
                            .fluentPut("ownertype", "bos_org")
                            .fluentPut("keepertype", "bos_org")
                            .fluentPut("keeper_number", "BU-00001")
                            .fluentPut("owner_number", "BU-00001")
                            .fluentPut("manuentry", orderDetl.getLineNumber())
                            .fluentPut("prdunitid_number", "个")
                            .fluentPut("warehouse_number", "CK-002")
                            .fluentPut("srcbillentity", "pom_mftorderreport")
                            .fluentPut("srcbillid", Long.parseLong(order.getItemName()))
                            .fluentPut("srcbillentryid", Long.parseLong(orderDetl.getThreeCode()))
                            .fluentPut("srcbillnumber", order.getOrderNo())
                            .fluentPut("srcbillentryseq", orderDetl.getLineNumber())
                            .fluentPut("outownertype", "bos_org")
                            .fluentPut("outkeepertype", "bos_org")
                            .fluentPut("prdqty", qty)
                            .fluentPut("manubill", order.getDefNumber())
                            .fluentPut("manubillid", orderDetl.getModel())
                            .fluentPut("manuentryid", orderDetl.getBrand())
                            .fluentPut("producttype", "C")
                            .fluentPut("qualitystatus", "A")
                            .fluentPut("eap7_textfield", orderDetl.getMaktx())
                            .fluentPut("material_number", orderDetl.getMatnr())
                            .fluentPut("invtype_number", "110")
                            .fluentPut("qualitystatus", "A")
                            .fluentPut("billentry_lk", billentryLkArray1);
                    billentryArray1.add(billentry);
@@ -203,9 +225,11 @@
                                new JSONObject()
                                        .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
                                        .fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", ""))
                                        .fluentPut("billstatus", "C")
                                        .fluentPut("billstatus", "A")
                                        .fluentPut("invscheme_number", "331")
                                        .fluentPut("biztype_number", "330")
                                        .fluentPut("org_number", "BU-00001")
                                        .fluentPut("bizorg_number", "BU-00001")
                                        .fluentPut("biztime", sdf1.format(now1))
                                        .fluentPut("billentry", billentryArray1)  // 将 billentry 数组添加到请求参数
                        )));
src/main/java/com/zy/common/service/CommonService.java
@@ -1070,7 +1070,7 @@
            int endBay = 19;
            switch (findLocNoAttributeVo.getOutArea()) {
                case 1:
                case 3:
                    startBay = 15;
                    endBay = 19;
                    break;
@@ -1078,7 +1078,7 @@
                    startBay = 8;
                    endBay = 14;
                    break;
                case 3:
                case 1:
                    startBay = 1;
                    endBay = 8;
                    break;
@@ -1104,15 +1104,20 @@
                    if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                        continue;
                    }
                    if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
                        // 获取目标库位所在巷道最深空库位
                        LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
                        if (!Cools.isEmpty(locMast2) && locMast2.getRow1() == curRow) {
                            locMast = locMast2;
                            found = true;
                            break;
                        }
                    if(locMast1!= null){
                        locMast = locMast1;
                        found = true;
                        break;
                    }
//                    if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
//                        // 获取目标库位所在巷道最深空库位
//                        LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
//                        if (!Cools.isEmpty(locMast2) && locMast2.getRow1() == curRow) {
//                            locMast = locMast2;
//                            found = true;
//                            break;
//                        }
//                    }
                }
                if (found) {
src/main/java/com/zy/common/web/WcsController.java
@@ -271,6 +271,10 @@
        if(wrkMast1== null){
            return  R.error("无该盘点移栽任务");
        }
        WrkMast wrkMast2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",9997));
        if(wrkMast2 != null){
            throw new CoolException("存在9997盘点移栽任务");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(transplantWork.getWorkNo());
        Date now = new Date();
        // 生成工作档
@@ -320,6 +324,10 @@
        if(wrkMast1== null){
            return  R.error("无该盘点移栽任务");
        }
        WrkMast wrkMast2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",9996));
        if(wrkMast2 != null){
            throw new CoolException("存在9997盘点移栽任务");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(transplantWork.getWorkNo());
        Date now = new Date();
src/main/resources/mapper/BasAgvLocDetlMapper.xml
@@ -53,5 +53,78 @@
        <result column="box_type3" property="boxType3" />
    </resultMap>
    <sql id="batchSeq">
        <choose>
            <when test="batch != null and batch != ''">
                and d.batch = #{batch}
            </when>
            <otherwise>
                and (d.batch IS NULL OR d.batch = '')
            </otherwise>
        </choose>
        <choose>
            <when test="brand != null and brand != ''">
                and d.brand = #{brand}
            </when>
            <otherwise>
                and (d.brand IS NULL OR d.brand = '')
            </otherwise>
        </choose>
        <choose>
            <when test="standby1 != null and standby1 != ''">
                and d.standby1 = #{standby1}
            </when>
            <otherwise>
                and (d.standby1 IS NULL OR d.standby1 = '')
            </otherwise>
        </choose>
        <choose>
            <when test="standby2 != null and standby2 != ''">
                and d.standby2 = #{standby2}
            </when>
            <otherwise>
                and (d.standby2 IS NULL OR d.standby2 = '')
            </otherwise>
        </choose>
        <choose>
            <when test="standby3 != null and standby3 != ''">
                and d.standby3 = #{standby3}
            </when>
            <otherwise>
                and (d.standby3 IS NULL OR d.standby3 = '')
            </otherwise>
        </choose>
        <choose>
            <when test="boxType1 != null and boxType1 != ''">
                and d.box_type1 = #{boxType1}
            </when>
            <otherwise>
                and (d.box_type1 IS NULL OR d.box_type1 = '')
            </otherwise>
        </choose>
        <choose>
            <when test="boxType2 != null and boxType2 != ''">
                and d.box_type2 = #{boxType2}
            </when>
            <otherwise>
                and (d.box_type2 IS NULL OR d.box_type2 = '')
            </otherwise>
        </choose>
        <choose>
            <when test="boxType3 != null and boxType3 != ''">
                and d.box_type3 = #{boxType3}
            </when>
            <otherwise>
                and (d.box_type3 IS NULL OR d.box_type3 = '')
            </otherwise>
        </choose>
    </sql>
    <select id="selectItem" resultMap="BaseResultMap">
        select top 1 *
        from asr_loc_detl d
        where 1=1
        and loc_no = #{locNo}
        and matnr = #{matnr}
        <include refid="batchSeq"></include>
    </select>
</mapper>
src/main/resources/mapper/BasAgvLocNoMapper.xml
@@ -14,4 +14,6 @@
    </resultMap>
</mapper>
src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
@@ -216,7 +216,7 @@
            class="detail-dialog"
            @close="closeDetailDialog">
        <div v-if="currentRow">
            <h3>组货单主表 (订单号: {{ currentRow.orderNo }})</h3>
            <h3>订单主表 (订单号: {{ currentRow.orderNo }})</h3>
            <el-descriptions :column="2" border>
                <el-descriptions-item label="客户名称">{{ currentRow.cstmrName }}</el-descriptions-item>
                <el-descriptions-item label="状态">{{ formatStatus(currentRow)}}</el-descriptions-item>
@@ -224,7 +224,7 @@
                <el-descriptions-item label="备注">{{ currentRow.memo || '无' }}</el-descriptions-item>
            </el-descriptions>
            <h3 style="margin-top: 20px;">组货单明细</h3>
            <h3 style="margin-top: 20px;">订单明细</h3>
            <el-table
                    border
                    :data="tableDataB"
@@ -250,7 +250,7 @@
                        ></el-input-number>
                    </template>
                </el-table-column>
                <el-table-column prop="erpAnfme" label="erp下发数量" min-width="80" align="center"></el-table-column>
                <el-table-column prop="anfme" label="erp下发数量" min-width="80" align="center"></el-table-column>
                <el-table-column prop="sortingAnfme" label="待下发数量" min-width="80" align="center"></el-table-column>
<!--                <el-table-column prop="status" label="状态" min-width="100" align="center" :formatter="formatStatusB"></el-table-column>-->
                <el-table-column prop="inspect" label="状态" min-width="100" align="center" :formatter="formatStatusC"></el-table-column>
@@ -544,7 +544,7 @@
                }
                // 验证ERP下发数量
                if (row.erpAnfme && newValue > parseInt(row.erpAnfme)) {
                if (row.anfme && newValue > parseInt(row.anfme)) {
                    this.$message.warning('修改数量不能大于ERP下架数量');
                    this.$set(row, 'anfme', oldValue);
                    this.modifiedQuantities[itemKey] = oldValue;
@@ -634,7 +634,7 @@
                    headers: {'token': localStorage.getItem('token')},
                    data: top.reObject({
                        orderNo: orderNo, // 组货单号
                        id: id, // 箱号
                        id: id, // id
                        anfme: anfme, // 箱号
                        inspect: inspect // 箱号
                    }),
@@ -644,7 +644,7 @@
                        if (res.code === 200 || res.success) {
                            this.$message({
                                message: `修改成功!组货单号: ${groupOrderNo}, 箱号: ${batch}`,
                                message: `修改成功!订单号: ${orderNo}, id: ${id}`,
                                type: 'success',
                                duration: 3000
                            });