Browse Source

Merge branch 'master_huangjunjie' of http://121.40.253.172:3000/pengyue/jsh_erp into master_liaozeyong

# Conflicts:
#	src/main/java/com/jsh/erp/controller/pda/PdaController.java
廖泽勇 1 month ago
parent
commit
b7f510d53a

+ 15 - 0
src/main/java/com/jsh/erp/controller/pda/PdaController.java

@@ -246,4 +246,19 @@ public class PdaController extends BaseController {
         return AjaxResult.success();
     }
 
+    /**
+     * PDA订单提交
+     */
+    @PostMapping ("/orderSubmit")
+    @ApiOperation(value = "订单提交")
+    public AjaxResult orderSubmit(@RequestBody PDADepotHeadDTO pdaDepotHeadDTO) {
+        try {
+            depotHeadService.pdaOrderSubmit(pdaDepotHeadDTO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error();
+        }
+        return AjaxResult.success();
+    }
+
 }

+ 3 - 3
src/main/java/com/jsh/erp/datasource/entities/DepotHead.java

@@ -2,6 +2,7 @@ package com.jsh.erp.datasource.entities;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -31,9 +32,11 @@ public class DepotHead {
     private String number;
 
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     @ApiModelProperty("出入库时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date operTime;
 
     @ApiModelProperty("供应商id")
@@ -114,9 +117,6 @@ public class DepotHead {
     @ApiModelProperty("凭证图片")
     private String voucherPicture;
 
-    @ApiModelProperty("二维码图片地址")
-    private String qrcodeUrl;
-
     @ApiModelProperty("商品数量")
     private int goodsQuantity;
 

+ 6 - 0
src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java

@@ -260,4 +260,10 @@ public interface DepotItemMapperEx {
             @Param("meId") Long meId,
             @Param("type") String type,
             @Param("subType") String subType);
+
+    /**
+     * 根据系统sku获取库存不为零的单据商品,按生产日期顺序排序取第一条
+     * @param systemSku 系统sku
+     */
+    MaterialVo4Unit getDepotMaterialBySystemSku(@Param("systemSku") String systemSku);
 }

+ 1 - 1
src/main/java/com/jsh/erp/datasource/mappers/MaterialCategoryMapper.java

@@ -31,5 +31,5 @@ public interface MaterialCategoryMapper {
     /**
      * 查询最大类型编码
      */
-    Long selectMaxSerialNo();
+    Long selectMaxId();
 }

+ 10 - 3
src/main/java/com/jsh/erp/datasource/pda/dto/PDADepotHeadDTO.java

@@ -1,15 +1,16 @@
 package com.jsh.erp.datasource.pda.dto;
 
-import com.jsh.erp.datasource.pda.vo.PDADepotItemVO;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.util.List;
 
 @Data
 public class PDADepotHeadDTO {
 
+    @ApiModelProperty("单据ID")
+    private Long id;
+
     @ApiModelProperty("开始时间")
     private String beginTime;
 
@@ -28,8 +29,14 @@ public class PDADepotHeadDTO {
     @ApiModelProperty("操作类型")
     private String type;
 
+    @ApiModelProperty("凭证图片")
+    private String voucherPicture;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
     @ApiModelProperty("订单商品数据")
-    private List<PDADepotMaterialDto> material;
+    private List<PDADepotMaterialDto> materials;
 
 
 

+ 8 - 2
src/main/java/com/jsh/erp/datasource/pda/dto/PDADepotMaterialDto.java

@@ -1,9 +1,11 @@
 package com.jsh.erp.datasource.pda.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 @Data
 public class PDADepotMaterialDto {
@@ -11,7 +13,11 @@ public class PDADepotMaterialDto {
     @ApiModelProperty("批次号")
     private String batchNumber;
 
-    @ApiModelProperty("订单数量")
-    private BigDecimal operNumber;
+    @ApiModelProperty("商品数量")
+    private BigDecimal materialNumber;
+
+    @ApiModelProperty("生产日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date productionDate;
 
 }

+ 3 - 0
src/main/java/com/jsh/erp/datasource/pda/vo/PDADepotHeadVO.java

@@ -1,7 +1,9 @@
 package com.jsh.erp.datasource.pda.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -18,6 +20,7 @@ public class PDADepotHeadVO {
     private String supplierName;
 
     @ApiModelProperty("订单创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     @ApiModelProperty("商品总数量")

+ 3 - 0
src/main/java/com/jsh/erp/datasource/pda/vo/PDADepotItemVO.java

@@ -1,5 +1,6 @@
 package com.jsh.erp.datasource.pda.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -27,6 +28,7 @@ public class PDADepotItemVO{
     private String batchNumber;
 
     @ApiModelProperty("生产日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date productionDate;
 
     @ApiModelProperty("商品库位")
@@ -48,6 +50,7 @@ public class PDADepotItemVO{
     private String materialUnit;
 
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     @ApiModelProperty("商品系统SKU")

+ 6 - 0
src/main/java/com/jsh/erp/service/DepotHeadService.java

@@ -190,4 +190,10 @@ public interface DepotHeadService extends IService<DepotHead> {
      */
     DepotHead getDepotLastByMaterialId(long mid);
 
+    /**
+     * pda订单提交
+     * @param pdaDepotHeadDTO
+     * @return
+     */
+    boolean pdaOrderSubmit(PDADepotHeadDTO pdaDepotHeadDTO) throws Exception;
 }

+ 1 - 1
src/main/java/com/jsh/erp/service/MaterialCategoryService.java

@@ -122,7 +122,7 @@ public class MaterialCategoryService {
         MaterialCategory materialCategory = JSONObject.parseObject(obj.toJSONString(), MaterialCategory.class);
         materialCategory.setCreateTime(new Date());
         materialCategory.setUpdateTime(new Date());
-        materialCategory.setSerialNo(materialCategoryMapper.selectMaxSerialNo()+1);
+        materialCategory.setSerialNo(materialCategoryMapper.selectMaxId()+10001);
         int result=0;
         try{
             result=materialCategoryMapper.insertSelective(materialCategory);

+ 2 - 1
src/main/java/com/jsh/erp/service/MaterialService.java

@@ -3,6 +3,7 @@ package com.jsh.erp.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.vo.MaterialWarnListVo;
 import com.jsh.erp.utils.BaseResponseInfo;
@@ -15,7 +16,7 @@ import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
-public interface MaterialService {
+public interface MaterialService extends IService<Material> {
     Material getMaterial(long id)throws Exception;
 
     List<Material> getMaterialListByIds(String ids)throws Exception;

+ 157 - 2
src/main/java/com/jsh/erp/service/impl/DepotHeadServiceImpl.java

@@ -2,6 +2,8 @@ package com.jsh.erp.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jsh.erp.constants.BusinessConstants;
 import com.jsh.erp.constants.ExceptionConstants;
@@ -10,10 +12,13 @@ import com.jsh.erp.datasource.mappers.DepotHeadMapper;
 import com.jsh.erp.datasource.mappers.DepotHeadMapperEx;
 import com.jsh.erp.datasource.mappers.DepotItemMapperEx;
 import com.jsh.erp.datasource.pda.dto.PDADepotHeadDTO;
+import com.jsh.erp.datasource.pda.dto.PDADepotMaterialDto;
 import com.jsh.erp.datasource.pda.vo.PDADepotHeadVO;
 import com.jsh.erp.datasource.vo.*;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.exception.JshException;
+import com.jsh.erp.query.LambdaQueryWrapperX;
+import com.jsh.erp.query.QueryWrapperX;
 import com.jsh.erp.service.*;
 import com.jsh.erp.util.QRCodeGenerator;
 import com.jsh.erp.utils.ExcelUtils;
@@ -83,6 +88,10 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
     private LogService logService;
     @Resource
     private QRCodeGenerator qrCodeGenerator;
+    @Resource
+    private MaterialService materialService;
+    @Resource
+    private MaterialExtendService materialExtendService;
 
     /**
      * PDA查询订单
@@ -392,6 +401,8 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
         DepotHead depotHead = JSONObject.parseObject(obj.toJSONString(), DepotHead.class);
         depotHead.setCreateTime(new Timestamp(System.currentTimeMillis()));
         depotHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT);
+        User user = userService.getCurrentUser();
+        depotHead.setTenantId(user.getId());
         int result=0;
         try{
             result=depotHeadMapper.insert(depotHead);
@@ -1131,8 +1142,6 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
             }
         }
         //生成订单二维码
-        //String qrCodeUrl = qrCodeGenerator.generateQRCodeImage(depotHead.getNumber());
-        depotHead.setQrcodeUrl(null);
         JSONArray rowArr = JSONArray.parseArray(rows);
         //商品数量
         int operNumber = 0;
@@ -1838,4 +1847,150 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
         return depotHeadMapper.getDepotLastByMaterialId(mid);
     }
 
+    /**
+     * pda订单提交
+     *
+     * @param pdaDepotHeadDTO
+     * @return
+     */
+    @Override
+    @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+    public boolean pdaOrderSubmit(PDADepotHeadDTO pdaDepotHeadDTO) throws Exception {
+        //根据单据号获取单据信息
+        DepotHead depotHead = depotHeadMapper.selectOne(new LambdaQueryWrapperX<DepotHead>().eq(DepotHead::getId, pdaDepotHeadDTO.getId()));
+        //根据单据id获取单据子表信息
+        List<DepotItem> depotItems = depotItemService.getListByHeaderId(depotHead.getId());
+        //设置单据主表信息
+        depotHead.setId(null);
+        String number = sequenceService.buildOnlyNumber();
+        //设置单号
+        if ("采购订单".equals(depotHead.getSubType())){
+            depotHead.setSubType("采购");
+            depotHead.setType("入库");
+            depotHead.setDefaultNumber("CGRK" + number) ;
+            depotHead.setNumber("CGRK" + number);
+        }else if ("销售订单".equals(depotHead.getSubType())){
+            depotHead.setSubType("销售");
+            depotHead.setType("出库");
+            depotHead.setDefaultNumber("XSCK" + number) ;
+            depotHead.setNumber("XSCK" + number);
+        }
+        //校验单号是否重复
+        if(checkIsBillNumberExist(0L, depotHead.getNumber())>0) {
+            throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE,
+                    String.format(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_MSG));
+        }
+        //校验是否同时录入关联请购单号和关联订单号
+        if(StringUtil.isNotEmpty(depotHead.getLinkNumber()) && StringUtil.isNotEmpty(depotHead.getLinkApply())) {
+            throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_CODE,
+                    String.format(ExceptionConstants.DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_MSG));
+        }
+        String subType = depotHead.getSubType();
+        //结算账户校验
+        if("采购".equals(subType) || "采购退货".equals(subType) || "销售".equals(subType) || "销售退货".equals(subType)) {
+            if (StringUtil.isEmpty(depotHead.getAccountIdList()) && depotHead.getAccountId() == null) {
+                throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_CODE,
+                        String.format(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_MSG));
+            }
+        }
+        //判断用户是否已经登录过,登录过不再处理
+        User userInfo=userService.getCurrentUser();
+        depotHead.setCreator(userInfo==null?null:userInfo.getId());
+        depotHead.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        if(StringUtil.isEmpty(depotHead.getStatus())) {
+            depotHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT);
+        }
+        depotHead.setPurchaseStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT);
+        depotHead.setPayType(depotHead.getPayType()==null?"现付":depotHead.getPayType());
+        if(StringUtil.isNotEmpty(depotHead.getAccountIdList())){
+            depotHead.setAccountIdList(depotHead.getAccountIdList().replace("[", "").replace("]", "").replaceAll("\"", ""));
+        }
+        if(StringUtil.isNotEmpty(depotHead.getAccountMoneyList())) {
+            //校验多账户的结算金额
+            String accountMoneyList = depotHead.getAccountMoneyList().replace("[", "").replace("]", "").replaceAll("\"", "");
+            BigDecimal sum = StringUtil.getArrSum(accountMoneyList.split(","));
+            BigDecimal manyAccountSum = sum.abs();
+            if(manyAccountSum.compareTo(depotHead.getChangeAmount().abs())!=0) {
+                throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_MANY_ACCOUNT_FAILED_CODE,
+                        String.format(ExceptionConstants.DEPOT_HEAD_MANY_ACCOUNT_FAILED_MSG));
+            }
+            depotHead.setAccountMoneyList(accountMoneyList);
+        }
+        //校验附件的数量
+        if(StringUtil.isNotEmpty(depotHead.getFileName())) {
+            String[] fileArr = depotHead.getFileName().split(",");
+            if(fileArr.length>4) {
+                throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_FILE_NUM_LIMIT_CODE,
+                        String.format(ExceptionConstants.DEPOT_HEAD_FILE_NUM_LIMIT_MSG, 4));
+            }
+        }
+        //商品数量
+        int operNumber = 0;
+        List<PDADepotMaterialDto> list = pdaDepotHeadDTO.getMaterials();
+        Map<String,PDADepotMaterialDto> materialMap = new HashMap<>();
+        for (int i = 0; i < list.size(); i++) {
+            operNumber = operNumber + list.get(i).getMaterialNumber().intValue();
+            materialMap.put(list.get(i).getBatchNumber(),list.get(i));
+        }
+        depotHead.setGoodsQuantity(operNumber);
+        //商品总类
+        depotHead.setGoodsTypeCount(list.size());
+        //设置凭证图片、备注
+        depotHead.setVoucherPicture(pdaDepotHeadDTO.getVoucherPicture());
+        depotHead.setRemark(pdaDepotHeadDTO.getRemark());
+        User user = userService.getCurrentUser();
+        depotHead.setTenantId(user.getId());
+        depotHead.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        //添加主表
+        depotHeadMapper.insertSelective(depotHead);
+        //根据单据编号查询单据id
+        long id = depotHeadMapper.selectOne(new QueryWrapperX<DepotHead>().eq("number",depotHead.getNumber())).getId();
+        //设置单据子表信息
+        for (DepotItem depotItem : depotItems) {
+            //获取子表单商品
+            MaterialExtend materialExtend = materialExtendService.getMaterialExtend(depotItem.getMaterialExtendId());
+            //获取子表单批次号
+            String batchNumber = materialExtend.getBatchNumber();
+            //修改原先采购订单实际入库数量
+            depotItemService.update(new UpdateWrapper<DepotItem>().set("actual_quantity_in_storage", materialMap.get(batchNumber).getMaterialNumber()).eq("id", depotItem.getId()));
+            //设置单据主表id
+            depotItem.setHeaderId(id);
+            depotItem.setId(null);
+            //设置实际入库数量
+            depotItem.setActualQuantityInStorage(materialMap.get(batchNumber).getMaterialNumber());
+            //以下进行单位换算
+            Unit unitInfo = materialService.findUnit(depotItem.getMaterialId()); //查询多单位信息
+            if (StringUtil.isExist(depotItem.getActualQuantityInStorage())) {
+                //获取子表单商品单位
+                String unit =depotItem.getMaterialUnit();
+                BigDecimal oNumber = depotItem.getActualQuantityInStorage();
+                //设置基础数量
+                if (StringUtil.isNotEmpty(unitInfo.getName())) {
+                    String basicUnit = unitInfo.getBasicUnit(); //基本单位
+                    if (unit.equals(basicUnit)) { //如果等于基本单位
+                        depotItem.setBasicNumber(oNumber); //数量一致
+                    } else if (unit.equals(unitInfo.getOtherUnit())) { //如果等于副单位
+                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatio())); //数量乘以比例
+                    } else if (unit.equals(unitInfo.getOtherUnitTwo())) { //如果等于副单位2
+                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioTwo())); //数量乘以比例
+                    } else if (unit.equals(unitInfo.getOtherUnitThree())) { //如果等于副单位3
+                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioThree())); //数量乘以比例
+                    } else {
+                        depotItem.setBasicNumber(oNumber); //数量一致
+                    }
+                } else {
+                    depotItem.setBasicNumber(oNumber); //其他情况
+                }
+            }
+            depotItem.setWarehousingUser(user.getId());
+            //添加单据子表
+            depotItemService.insertDepotItemWithObj(depotItem);
+            //修改商品生产日期
+            materialExtendService.update(new UpdateWrapper<MaterialExtend>().set("production_date",materialMap.get(batchNumber).getProductionDate()).eq("id", materialExtend.getId()));
+        }
+        //修改采购订单状态完成
+        this.update(new UpdateWrapper<DepotHead>().set("status", "2").eq("id", pdaDepotHeadDTO.getId()));
+        return true;
+    }
+
 }

+ 15 - 1
src/main/java/com/jsh/erp/service/impl/DepotItemServiceImpl.java

@@ -16,6 +16,7 @@ import com.jsh.erp.datasource.vo.DepotItemXsddRequestVO;
 import com.jsh.erp.datasource.vo.InOutPriceVo;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.exception.JshException;
+import com.jsh.erp.query.LambdaQueryWrapperX;
 import com.jsh.erp.service.*;
 import com.jsh.erp.utils.StringUtil;
 import com.jsh.erp.utils.Tools;
@@ -28,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.sql.Timestamp;
 import java.util.*;
 
 @Service
@@ -256,6 +258,8 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
     @Override
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     public int insertDepotItemWithObj(DepotItem depotItem)throws Exception {
+        User user = userService.getCurrentUser();
+        depotItem.setTenantId(user.getId());
         int result =0;
         try{
             result = depotItemMapper.insertSelective(depotItem);
@@ -1453,7 +1457,17 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
         JSONObject map = new JSONObject();
         JSONArray arr = new JSONArray();
         //根据批次号获取商品数据
-        List<MaterialVo4Unit> list = depotItemMapperEx.getBillItemByParam(batchNumbers);
+        List<MaterialVo4Unit> list = new ArrayList<>();
+        if ("XSDD".equals(prefixNo)){ //销售订单导入
+            List<String> strings = Arrays.asList(batchNumbers.replace("^\"|\"$","").split(","));
+            //根据系统sku查询商品
+            for (String str : strings) {
+                MaterialVo4Unit materialVo4Unit = depotItemMapperEx.getDepotMaterialBySystemSku(str);
+                list.add(materialVo4Unit);
+            }
+        }else {
+            list = depotItemMapperEx.getBillItemByParam(batchNumbers);
+        }
         //商品数据集合
         Map<String, MaterialVo4Unit> materialMap = new HashMap<>();
         //仓库集合

+ 1 - 0
src/main/java/com/jsh/erp/service/impl/MaterialExtendServiceImpl.java

@@ -279,6 +279,7 @@ public class MaterialExtendServiceImpl extends ServiceImpl<MaterialExtendMapper,
         materialExtend.setUpdateTime(new Date().getTime());
         materialExtend.setCreateSerial(user.getLoginName());
         materialExtend.setUpdateSerial(user.getLoginName());
+        materialExtend.setTenantId(user.getId());
         int result = 0;
         try{
             result= materialExtendMapper.insertSelective(materialExtend);

+ 2 - 0
src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java

@@ -181,6 +181,8 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
         String sku = serial_no + DateUtils.dateTimeNow();
         //设置系统sku
         m.setSystemSku(sku);
+        User user = userService.getCurrentUser();
+        m.setTenantId(user.getId());
         try{
             //添加商品
             materialMapperEx.insertSelectiveEx(m);

+ 4 - 12
src/main/resources/mapper_xml/DepotHeadMapper.xml

@@ -259,9 +259,6 @@
       <if test="voucherPicture != null">
         voucher_picture,
       </if>
-      <if test="qrcodeUrl != null">
-        qrcode_url,
-      </if>
       <if test="goodsQuantity != null">
         goods_quantity,
       </if>
@@ -369,9 +366,6 @@
       <if test="voucherPicture != null">
         #{voucherPicture,jdbcType=VARCHAR},
       </if>
-      <if test="qrcodeUrl != null">
-        #{qrcodeUrl,jdbcType=VARCHAR},
-      </if>
       <if test="goodsQuantity != null">
         #{goodsQuantity,jdbcType=INTEGER},
       </if>
@@ -627,14 +621,11 @@
       <if test="voucherPicture != null">
         voucher_picture = #{voucherPicture,jdbcType=VARCHAR},
       </if>
-      <if test="qrcodeUrl != null">
-        qrcode_url = #{qrcodeUrl,jdbcType=VARCHAR},
-      </if>
       <if test="goodsQuantity != null">
-        goods_quantity = #{goodsQuantity,jdbcType=INT},
+        goods_quantity = #{goodsQuantity,jdbcType=INTEGER},
       </if>
       <if test="goodsTypeCount != null">
-        goods_type_count = #{goodsTypeCount,jdbcType=INT},
+        goods_type_count = #{goodsTypeCount,jdbcType=INTEGER},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -686,10 +677,11 @@
       dh.status
     FROM
       jsh_depot_head dh
-        LEFT JOIN jsh_supplier s ON dh.organ_id = s.id
+      LEFT JOIN jsh_supplier s ON dh.organ_id = s.id
     <where>
       dh.sub_type = #{subType}
       AND dh.delete_flag = '0'
+      AND ifnull(dh.status,'0') != '0'
       <if test="number != null and number != ''">
         AND dh.number = #{number}
       </if>

+ 0 - 1
src/main/resources/mapper_xml/DepotItemMapper.xml

@@ -597,7 +597,6 @@
 	  me.inventory AS inventory,
 	  me.bar_code AS bar_code,
 	  di.oper_number AS oper_number,
-
       di.material_unit AS material_unit,
       me.create_time AS create_time
     FROM

+ 15 - 0
src/main/resources/mapper_xml/DepotItemMapperEx.xml

@@ -1142,4 +1142,19 @@
         limit 0,1
     </select>
 
+    <select id="getDepotMaterialBySystemSku" resultType="com.jsh.erp.datasource.entities.MaterialVo4Unit">
+        select m.*,u.name unit_name, me.id meId, me.commodity_unit, me.purchase_decimal, me.commodity_decimal,
+        me.wholesale_decimal, me.low_decimal, me.sku,
+        me.production_date, me.expiry_num, me.supplier_id, me.bar_code, me.batch_number, me.depot_id, me.position,d.`name` depotName,s.supplier supplierName
+        from jsh_material m
+        left join jsh_material_extend me on m.id=me.material_id and ifnull(me.delete_Flag,'0') !='1'
+        left join jsh_unit u on m.unit_id=u.id and ifnull(u.delete_Flag,'0') !='1'
+        left JOIN jsh_depot d on me.depot_id = d.id and ifnull(d.delete_Flag,'0') !='1'
+        left JOIN jsh_supplier s on me.supplier_id = s.id and ifnull(s.delete_Flag,'0') !='1'
+        where m.system_sku = #{systemSku}
+        AND me.inventory > 0
+        AND ifnull(m.delete_flag,'0') !='1'
+        order by me.production_date LIMIT 1
+    </select>
+
 </mapper>

+ 3 - 2
src/main/resources/mapper_xml/MaterialCategoryMapper.xml

@@ -304,7 +304,8 @@
     where id = #{id,jdbcType=BIGINT}
   </update>
 
-  <select id="selectMaxSerialNo" resultType="java.lang.Long">
-    select MAX(serial_no) from jsh_material_category
+  <select id="selectMaxId" resultType="java.lang.Long">
+    select MAX(id) from jsh_material_category
   </select>
+
 </mapper>