skyouc
7 天以前 b5e4bbec339bf3858338deece026a20bc40b8923
no message
12个文件已修改
147 ■■■■ 已修改文件
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/waitPakin/SelectSiteModel.jsx 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/waitPakin/WaitPakinList.jsx 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -205,6 +205,15 @@
}
export default AsnOrderList;
const ODeleteButton = () => {
  const record = useRecordContext();
  return (
    record.exceStatus === 0 ? <DeleteButton /> : <></>
  )
}
const MyButton = ({ setCreateDialog, setmodalType }) => {
  const record = useRecordContext();
  const handleEditClick = (btn) => {
@@ -351,7 +360,7 @@
    // record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="secondary">
    //   <TaskIcon />
    // </Button> : )
    <ConfirmButton label={"toolbar.complete"} color="secondary"  startIcon={<TaskIcon />} onConfirm={requestComplete} />
    record.exceStatus === 1 ? <ConfirmButton label={"toolbar.complete"} color="secondary"  startIcon={<TaskIcon />} onConfirm={requestComplete} /> : <></>
  )
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -462,17 +462,17 @@
            ),
            headerClassName: "custom",
        },
        {
            field: 'splrName',
            headerName: translate('table.field.asnOrderItem.splrName') + "*",
            minWidth: 100,
            flex: 1,
            editable: true,
            renderEditCell: (params) => (
                <SelectInputSplrNameEditCell {...params} />
            ),
            headerClassName: "custom",
        },
        // {
        //     field: 'splrName',
        //     headerName: translate('table.field.asnOrderItem.splrName') + "*",
        //     minWidth: 100,
        //     flex: 1,
        //     editable: true,
        //     renderEditCell: (params) => (
        //         <SelectInputSplrNameEditCell {...params} />
        //     ),
        //     headerClassName: "custom",
        // },
        // {
        //     field: 'packName',
        //     headerName: translate('table.field.asnOrderItem.packName'),
@@ -487,14 +487,23 @@
        //     flex: 1,
        // },
        {
            field: 'poCode',
            headerName: translate('table.field.asnOrderItem.poDetlCode') + "*",
            field: 'platItemId',
            headerName: translate('table.field.asnOrderItem.platItemId') + "*",
            minWidth: 100,
            flex: 1,
            editable: true,
            headerClassName: "custom",
        },
        // {
        //     field: 'poCode',
        //     headerName: translate('table.field.asnOrderItem.poDetlCode') + "*",
        //     minWidth: 100,
        //     flex: 1,
        //     editable: true,
        //     headerClassName: "custom",
        // },
        {
            field: 'stockUnit',
            headerName: translate('table.field.asnOrderItem.stockUnit'),
rsf-admin/src/page/waitPakin/SelectSiteModel.jsx
rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -114,9 +114,26 @@
        )
    }
    const BulkActionButtons = () => {
    const CreateTaskRowButton = () => {
        const record = useRecordContext();
        const refresh = useRefresh();
        const createTask = (event) => {
            event.stopPropagation();
            setSiteDialog(true)
            setSource([record])
            refresh()
    }
        return (
            <>
                <Button onClick={(event) => createTask(event)} label={"toolbar.createTask"}>
                    <AddIcon />
                </Button>
            </>
        )
    }
    return (
        <Box display="flex">
            <List
@@ -164,6 +181,7 @@
                    <TextField source="memo" label="common.field.memo" sortable={false} />
                    <WrapperField cellClassName="opt" label="common.field.opt">
                        <EditButton label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} />
                        <CreateTaskRowButton />
                        {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
                    </WrapperField>
                </StyledDatagrid>
@@ -186,3 +204,5 @@
export default WaitPakinList;
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -23,6 +23,7 @@
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.enums.PakinIOStatus;
import com.vincent.rsf.server.manager.enums.QlyIsptResult;
import com.vincent.rsf.server.manager.enums.QlyIsptStatus;
import com.vincent.rsf.server.manager.mapper.*;
import com.vincent.rsf.server.manager.service.*;
@@ -293,15 +294,9 @@
            if (asnOrderItemMapper.updateById(orderItem) < 1) {
                throw new CoolException("通知单明细数量修改失败!!");
            }
            /**保存明细至收货区**/
            extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr);
            List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getAsnItemId, dto.getId()));
            if (isptItems.isEmpty()) {
                extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr);
            } else {
                for (QlyIsptItem isptItem : isptItems) {
                    extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr);
                }
            }
        }
        AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, asnCode));
@@ -340,19 +335,38 @@
                .setFieldsIndex(orderItem.getFieldsIndex())
                .setShipperId(matnr.getShipperId());
        //TODO 供应商标识未设置,标识由PO单供应商编码转换
        WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId())
                .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode())
                .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
        if (!Objects.isNull(serviceOne)) {
            item.setAnfme(item.getAnfme() + serviceOne.getAnfme());
            item.setId(serviceOne.getId());
        }
        //未质检
        if (!warehouseAreasItemService.saveOrUpdate(item)) {
            throw new CoolException("收货失败!!");
        }
//        if (null != orderItem.getSafeQty() || null != orderItem.getDisQty() ) {
//
//        }
//        else {
//            //不合格数量
//            if (orderItem.getDisQty().compareTo(0.00) > 0) {
//                item.setIsptQty(orderItem.getDisQty()).setFlagNorm(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val);
//                if (!warehouseAreasItemService.saveOrUpdate(item)) {
//                    throw new CoolException("收货失败!!");
//                }
//            }
//
//            item.setIsptQty(orderItem.getSafeQty()).setFlagNorm(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val);
//            if (!warehouseAreasItemService.saveOrUpdate(item)) {
//                throw new CoolException("收货失败!!");
//            }
//        }
    }
    /**
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java
@@ -9,21 +9,30 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.entity.Purchase;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.manager.service.PurchaseService;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.controller.BaseController;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
@RestController
public class PurchaseController extends BaseController {
    @Autowired
    private PurchaseService purchaseService;
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    @PreAuthorize("hasAuthority('manager:purchase:list')")
    @PostMapping("/purchase/page")
@@ -59,6 +68,11 @@
        purchase.setCreateTime(new Date());
        purchase.setUpdateBy(getLoginUserId());
        purchase.setUpdateTime(new Date());
        if (StringUtils.isBlank(purchase.getCode())) {
            String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ORDER_PO_CODE, purchase);
            purchase.setCode(ruleCode);
        }
        if (!purchaseService.save(purchase)) {
            return R.error("Save Fail");
        }
@@ -81,6 +95,12 @@
    @OperationLog("Delete ERP采购单")
    @PostMapping("/purchase/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        List<Purchase> purchases = purchaseService.listByIds(Arrays.asList(ids));
        Set<String> stringSet = purchases.stream().map(Purchase::getCode).collect(Collectors.toSet());
        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getPoCode, stringSet));
        if (!orderItems.isEmpty()) {
            return R.error("单据有已生成的收货单明细,不可执行删除操作!!");
        }
        if (!purchaseService.removeByIds(Arrays.asList(ids))) {
            return R.error("Delete Fail");
        }
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
@@ -202,9 +202,11 @@
    @ApiModelProperty("合格数量")
    @TableField(exist = false)
    private Double safeQty;
    @ApiModelProperty("不合格数量")
    @TableField(exist = false)
    private Double disQty;
    /**
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
@@ -198,6 +198,12 @@
    @ApiModelProperty(value= "修改人员")
    private Long updateBy;
    @ApiModelProperty("是否合格")
    private Short flagNorm;
    @ApiModelProperty("质检数量")
    private Double isptQty;
    /**
     * 修改时间
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java
@@ -13,7 +13,7 @@
    QLY_ISPT_RESULT_DEFECT("2", "不合格"),
    QLY_ISPT_RESULT_PENDING("3", "待定"),
    QLY_ISPT_RESULT_SECTION("4", "部分合格"),
    QLY_ISPT_RESULT_HOLD("0", "其它")
    QLY_ISPT_RESULT_HOLD("0", "未质检")
    ;
    QlyIsptResult(String val, String desc) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -199,6 +199,14 @@
            String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, asnOrderItem);
            asnOrderItem.setTrackCode(ruleCode).setBarcode(ruleCode);
        }
        if (StringUtils.isNoneBlank(asnOrderItem.getSplrCode())) {
            Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>()
                    .eq(Companys::getId, asnOrderItem.getSplrCode())
                    .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val));
            if (!Objects.isNull(companys)) {
                asnOrderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName());
            }
        }
        if (Objects.isNull(asnOrderItem.getAnfme()) || Double.compare(asnOrderItem.getAnfme(), 0.0) <= 0) {
            throw new CoolException("计划数不能为空!!");
        }
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
@@ -74,4 +74,7 @@
     */
    public final static String SYS_WAVE_TYPE = "sys_wave_type";
    /**PO单编码*/
    public final static String SYS_ORDER_PO_CODE = "sys_order_po_code";
}
rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java
@@ -64,9 +64,9 @@
                if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_YEAR.type)) {
                     format = DateUtils.format(new Date(), "yyyy");
                } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_MONTH.type)) {
                     format = DateUtils.format(new Date(), "yyyyMM");
                     format = DateUtils.format(new Date(), "yyMM");
                } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_DAYS.type)){
                     format = DateUtils.format(new Date(), "yyyyMMdd");
                     format = DateUtils.format(new Date(), "yyMMdd");
                }
                //当前值自动加1
                Integer curVal = serialRule.getCurrValue() + 1;