houjie
2023-08-23 b41bcab1dfceb7d452cb0ffd1158f299ba736cd3
计量单位:重构/备件模块  调整
已修改7个文件
255 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartCancellingStocksDetailServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartCancellingStocksServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartOutboundDetailServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartPurchaseStorageDetailServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartReceiveDeatilServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparesScrapDetailServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/base/controller/UnitController.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartCancellingStocksDetailServiceImpl.java
@@ -74,29 +74,29 @@
        //3.获取主 辅单位转换比例
        SparePart sparePart = sparePartService.getById(sparePartId);
        String conversionRatio = sparePart.getConversionRatio();
  /*      String conversionRatio = sparePart.getConversionRatio();
        double conversionRatioD = 0;
        if (StringUtils.isBlank(conversionRatio)) {
            conversionRatioD = Double.parseDouble("0");
        } else {
            conversionRatioD = Double.parseDouble(conversionRatio);
        }
        BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);
        BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);*/
        //4.计算出库数量更新库存数量(库存)
        Double mainQuantity = sparesPartInventory.getMainQuantity();
        BigDecimal mainQuantityB = new BigDecimal(mainQuantity);
        /*仓库辅数量*/
        Double auxiliaryQuantity = sparesPartInventory.getAuxiliaryQuantity();
        BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);
     /*   BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);*/
        BigDecimal mainQuantitySubtract = mainQuantityB.add(outboundMainQuantityB);//加后的库存主数量
        BigDecimal outboundAuxiliaryQuantity = outboundMainQuantityB.multiply(conversionRatioB);//出库辅数量
       /* BigDecimal outboundAuxiliaryQuantity = outboundMainQuantityB.multiply();*///出库辅数量
        /*辅数量=仓库辅数量+出库的辅数量(出库数量*计算比例)*/
        BigDecimal auxiliaryQuantitySubtract = auxiliaryQuantityB.add(outboundAuxiliaryQuantity);//加后的库存辅数量
       /* BigDecimal auxiliaryQuantitySubtract = auxiliaryQuantityB.add(outboundAuxiliaryQuantity);//加后的库存辅数量*/
        sparesPartInventory.setMainQuantity(mainQuantitySubtract.doubleValue());
        sparesPartInventory.setAuxiliaryQuantity(auxiliaryQuantitySubtract.doubleValue());
    /*    sparesPartInventory.setAuxiliaryQuantity(auxiliaryQuantitySubtract.doubleValue());*/
        boolean b = sparesPartInventoryService.updateById(sparesPartInventory);
        if (!b) {
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartCancellingStocksServiceImpl.java
@@ -47,7 +47,7 @@
            for (SparePartCancellingStocksDetail entity : sparePartCancellingStocksDetailList) {
                entity.setStatus(CommonConstant.STATUS_0);
                SparePart sparePart = sparePartService.getById(entity.getSparePartId());
                entity.setAuxiliaryQuantity(entity.getMainQuantity() * Double.parseDouble(sparePart.getConversionRatio()));
               /* entity.setAuxiliaryQuantity(entity.getMainQuantity() * Double.parseDouble(sparePart.getConversionRatio()));*/
                //外键设置
                entity.setSparePartCancellingId(sparePartCancellingStocks.getId());
                sparePartCancellingStocksDetailMapper.insert(entity);
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartOutboundDetailServiceImpl.java
@@ -69,27 +69,27 @@
        //3.获取主 辅单位转换比例
        SparePart sparePart = sparePartService.getById(sparePartId);
        String conversionRatio = sparePart.getConversionRatio();
/*        String conversionRatio = sparePart.getConversionRatio();
        double conversionRatioD = 0;
        if(StringUtils.isBlank(conversionRatio)){
             conversionRatioD = Double.parseDouble("0");
        }else{
             conversionRatioD = Double.parseDouble(conversionRatio);
        }
        BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);
        BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);*/
        //4.计算出库数量更新库存数量(库存)
        Double mainQuantity = sparesPartInventory.getMainQuantity();
        BigDecimal mainQuantityB = new BigDecimal(mainQuantity);
        Double auxiliaryQuantity = sparesPartInventory.getAuxiliaryQuantity();
        BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);
      /*  Double auxiliaryQuantity = sparesPartInventory.getAuxiliaryQuantity();*/
      /*  BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);*/
        BigDecimal mainQuantitySubtract = mainQuantityB.subtract(outboundMainQuantityB);//减完后的库存主数量
        BigDecimal outboundAuxiliaryQuantity = outboundMainQuantityB.multiply(conversionRatioB);//出库辅数量
        BigDecimal auxiliaryQuantitySubtract = auxiliaryQuantityB.subtract(outboundAuxiliaryQuantity);//减完后的库存辅数量
      /*  BigDecimal outboundAuxiliaryQuantity = outboundMainQuantityB.multiply(conversionRatioB);//出库辅数量*/
     /*   BigDecimal auxiliaryQuantitySubtract = auxiliaryQuantityB.subtract(outboundAuxiliaryQuantity);//减完后的库存辅数量*/
        sparesPartInventory.setMainQuantity(mainQuantitySubtract.doubleValue());
        sparesPartInventory.setAuxiliaryQuantity(auxiliaryQuantitySubtract.doubleValue());
      /*  sparesPartInventory.setAuxiliaryQuantity(auxiliaryQuantitySubtract.doubleValue());*/
        boolean b = sparesPartInventoryService.updateById(sparesPartInventory);
        if(!b){
            return b;
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartPurchaseStorageDetailServiceImpl.java
@@ -79,8 +79,8 @@
        sparesPartInventory.setConstructorId(sparePartPurchaseStorageDetail.getConstructorId());
        sparesPartInventory.setMainUnitId(sparePartPurchaseStorageDetail.getMainUnitId());
        sparesPartInventory.setMainQuantity(sparePartPurchaseStorageDetail.getMainQuantity());
        sparesPartInventory.setAuxiliaryUnitId(sparePartPurchaseStorageDetail.getAuxiliaryUnitId());
        sparesPartInventory.setAuxiliaryQuantity(sparePartPurchaseStorageDetail.getAuxiliaryQuantity());
     /*   sparesPartInventory.setAuxiliaryUnitId(sparePartPurchaseStorageDetail.getAuxiliaryUnitId());
        sparesPartInventory.setAuxiliaryQuantity(sparePartPurchaseStorageDetail.getAuxiliaryQuantity());*/
        sparesPartInventory.setManufactureDate(sparePartPurchaseStorageDetail.getManufactureDate());
        sparesPartInventory.setSupplierId(sparePartPurchaseStorageDetail.getSupplierId());
        sparesPartInventory.setStatus("1");
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparePartReceiveDeatilServiceImpl.java
@@ -68,14 +68,14 @@
            //3.获取主 辅单位转换比例
            SparePart sparePart = sparePartService.getById(sparePartId);
            String conversionRatio = sparePart.getConversionRatio();
            double conversionRatioD = 0;
            /* String conversionRatio = sparePart.getConversionRatio();*/
           /* double conversionRatioD = 0;
            if (StringUtils.isBlank(conversionRatio)) {
                conversionRatioD = Double.parseDouble("0");
            } else {
                conversionRatioD = Double.parseDouble(conversionRatio);
            }
            BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);
            BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);*/
            //4.计算出库数量更新库存数量(库存)
            /*库存主数量*/
@@ -83,16 +83,16 @@
            BigDecimal mainQuantityB = new BigDecimal(mainQuantity);
            /*库存辅数量*/
            Double auxiliaryQuantity = sparesPartInventory.getAuxiliaryQuantity();
            BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);
          /*  Double auxiliaryQuantity = sparesPartInventory.getAuxiliaryQuantity();
            BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);*/
            BigDecimal mainQuantitySubtract = mainQuantityB.subtract(scrapMainQuantityB);//领取后库存主数量
            BigDecimal scrapAuxiliaryQuantity = mainQuantitySubtract.multiply(conversionRatioB);//领取后库存辅数量
            /*  BigDecimal scrapAuxiliaryQuantity = mainQuantitySubtract.multiply(conversionRatioB);//领取后库存辅数量*/
            sparesPartInventory.setMainQuantity(mainQuantitySubtract.doubleValue());
            sparesPartInventory.setAuxiliaryQuantity(scrapAuxiliaryQuantity.doubleValue());
            /*  sparesPartInventory.setAuxiliaryQuantity(scrapAuxiliaryQuantity.doubleValue());*/
            boolean b = sparesPartInventoryService.updateById(sparesPartInventory);
            if (!b) {
                return b;
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/service/impl/SparesScrapDetailServiceImpl.java
@@ -67,14 +67,14 @@
            //3.获取主 辅单位转换比例
            SparePart sparePart = sparePartService.getById(sparePartId);
            String conversionRatio = sparePart.getConversionRatio();
    /*        String conversionRatio = sparePart.getConversionRatio();
            double conversionRatioD = 0;
            if (StringUtils.isBlank(conversionRatio)) {
                conversionRatioD = Double.parseDouble("0");
            } else {
                conversionRatioD = Double.parseDouble(conversionRatio);
            }
            BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);
            BigDecimal conversionRatioB = new BigDecimal(conversionRatioD);*/
            //4.计算出库数量更新库存数量(库存)
            /*库存主数量*/
@@ -83,15 +83,15 @@
            /*库存辅数量*/
            Double auxiliaryQuantity = sparesPartInventory.getAuxiliaryQuantity();
            BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);
            /*BigDecimal auxiliaryQuantityB = new BigDecimal(auxiliaryQuantity);*/
            BigDecimal mainQuantitySubtract = mainQuantityB.subtract(scrapMainQuantityB);//报废后库存主数量
            BigDecimal scrapAuxiliaryQuantity = mainQuantitySubtract.multiply(conversionRatioB);//报废后库存辅数量
          /*  BigDecimal scrapAuxiliaryQuantity = mainQuantitySubtract.multiply(conversionRatioB);//报废后库存辅数量*/
            sparesPartInventory.setMainQuantity(mainQuantitySubtract.doubleValue());
            sparesPartInventory.setAuxiliaryQuantity(scrapAuxiliaryQuantity.doubleValue());
          /*  sparesPartInventory.setAuxiliaryQuantity(scrapAuxiliaryQuantity.doubleValue());*/
            boolean b = sparesPartInventoryService.updateById(sparesPartInventory);
            if (!b) {
                return b;
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/base/controller/UnitController.java
@@ -1,17 +1,29 @@
package org.jeecg.modules.base.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.base.entity.Unit;
import org.jeecg.modules.base.entity.UnitConversion;
import org.jeecg.modules.base.service.IUnitConversionService;
import org.jeecg.modules.base.service.IUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@@ -24,98 +36,131 @@
@RestController
@RequestMapping("/base/unit")
@Slf4j
public class UnitController {
public class UnitController extends JeecgController<Unit, IUnitService> {
    @Resource
    private IUnitService momUnitService;
    @Resource
    private IUnitConversionService momUnitConversionService;
    @Autowired
    private IUnitService unitService;
    /**
     * 查询数据 根据单位分类id查询计量单位列表
     * @author cj
     * @param unitCategoryId
     * 分页列表查询
     *
     * @param
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @GetMapping(value="/getListByUnitCategoryId")
    public Result<List<Unit>> getListByUnitCategoryId(String unitCategoryId){
        Result<List<Unit>> resule = new Result<>();
        List<Unit> list = momUnitService.getListByUnitCategoryId(unitCategoryId);
        resule.setResult(list);
        return  resule;
    }
    /**
     * 增加数据 添加和编辑计量单位信息
     * @author cj
     * @param momUnit
     * @return
     */
    @PostMapping(value = "/addMomUnit")
    public Result<Unit> addMomUnit(@RequestBody Unit momUnit){
        Result<Unit> result = new Result<>();
        try{
            momUnit.setDelFlag("0");
            momUnitService.saveOrUpdate(momUnit);
            result.success("操作成功");
        }catch (Exception e){
            result.error500("操作失败");
        }
        return result;
    @ApiOperation(value = "计量单位-分页列表查询", notes = "计量单位-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<Unit>> queryPageList(Unit unit,
                                             @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                             @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                             HttpServletRequest req) {
        QueryWrapper<Unit> queryWrapper = QueryGenerator.initQueryWrapper(unit, req.getParameterMap());
        Page<Unit> page = new Page<Unit>(pageNo, pageSize);
        IPage<Unit> pageList = unitService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * 删除数据 删除选中的计量单位信息
     * @author cj
     * 添加
     *
     * @param unit
     * @return
     */
    @AutoLog(value = "计量单位-添加")
    @ApiOperation(value = "计量单位-添加", notes = "计量单位-添加")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody Unit unit) {
        unitService.save(unit);
        return Result.OK("添加成功!");
    }
    /**
     * 编辑
     *
     * @param unit
     * @return
     */
    @AutoLog(value = "计量单位-编辑")
    @ApiOperation(value = "计量单位-编辑", notes = "计量单位-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody Unit unit) {
        unitService.updateById(unit);
        return Result.OK("编辑成功!");
    }
    /**
     * 通过id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "计量单位-通过id删除")
    @ApiOperation(value = "计量单位-通过id删除", notes = "计量单位-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
        unitService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @DeleteMapping(value = "/deleteMomUnit")
    public Result<Unit> deleteMomUnit(@RequestParam String ids){
        Result<Unit> result = new Result<>();
        if(oConvertUtils.isEmpty(ids)) {
            result.error500("未选中计量单位!");
        }else {
            String[] ls = ids.split(",");
            List<UnitConversion> list = new ArrayList<>();
            List<Long> idList = new ArrayList<>();
            List<String> nameList = new ArrayList<>();
            for (String id : ls) {
                //根据id查询是否有换算信息
                LambdaQueryWrapper<UnitConversion> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(UnitConversion::getUnitId,id);
                list = momUnitConversionService.list(queryWrapper);
                if(list.size()==0){
                    idList.add(Long.parseLong(id) );
                }else{
                    LambdaQueryWrapper<Unit> queryWrapper1 = new LambdaQueryWrapper<>();
                    queryWrapper1.eq(Unit::getId,id);
                    nameList.add(momUnitService.getOne(queryWrapper1).getName());
                }
            }
            if (idList.size() > 0) {
                momUnitService.removeByIds(idList);
                if (ls.length == idList.size()) {
                    result.success("删除成功!");
                } else {
                    result.error500("部分删除成功!("+nameList+"中含有计量单位换算信息无法删除!)");
                }
            }else  {
                result.error500("选择的计量单位都含有计量单位换算信息,无法删除!");
            }
        }
        return result;
    @AutoLog(value = "计量单位-批量删除")
    @ApiOperation(value = "计量单位-批量删除", notes = "计量单位-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        List<String> stringList = Arrays.asList(ids.split(","));
        unitService.removeBatchByIds(stringList);
        return Result.OK("批量删除成功!");
    }
    /**
     * 查询目标计量单位树结构
     * @author cj
     * 通过id查询
     *
     * @param id
     * @return
     */
    @GetMapping(value = "/getTreeList")
    public Result<List<Unit>> getTreeList(){
        Result<List<Unit>> result = new Result<>();
        List<Unit> list = momUnitService.getTreeList();
        result.setResult(list);
        return result;
    //@AutoLog(value = "精度参数-通过id查询")
    @ApiOperation(value = "计量单位-通过id查询", notes = "计量单位-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<Unit> queryById(@RequestParam(name = "id", required = true) String id) {
        Unit unit = unitService.getById(id);
        if (unit == null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(unit);
    }
    /**
     * 导出excel
     *
     * @param request
     * @param unit
     */
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, Unit unit) {
        return super.exportXls(request, unit, Unit.class, "计量单位");
    }
    /**
     * 通过excel导入数据
     *
     * @param request
     * @param response
     * @return
     */
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, Unit.class);
    }