ソースを参照

pda库存修改

huang 4 週間 前
コミット
0616ea42f9

+ 50 - 0
src/main/java/com/jsh/erp/controller/apkVersion/apkVersionController.java

@@ -0,0 +1,50 @@
+package com.jsh.erp.controller.apkVersion;
+
+
+import com.jsh.erp.base.AjaxResult;
+import com.jsh.erp.base.BaseController;
+import com.jsh.erp.base.TableDataInfo;
+import com.jsh.erp.datasource.dto.TaskStocktakingDTO;
+import com.jsh.erp.datasource.dto.TaskStocktakingQueryDTO;
+import com.jsh.erp.datasource.entities.ApkVersion;
+import com.jsh.erp.datasource.vo.TaskStocktakingVO;
+import com.jsh.erp.service.ApkVersionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@RestController
+@RequestMapping(value = "/apkVersion")
+@Api(tags = {"apk版本管理接口"})
+public class apkVersionController extends BaseController {
+
+    @Resource
+    private ApkVersionService apkVersionService;
+
+    @ApiOperation("apk版本列表")
+    @PostMapping("/list")
+    public TableDataInfo list(){
+        startPage();
+        List<ApkVersion> list = apkVersionService.list();
+        return getDataTable(list);
+    }
+
+    @ApiOperation("新增apk版本")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody ApkVersion apkVersion) {
+        apkVersion.setCreateTime(new Date());
+        boolean b = apkVersionService.save(apkVersion);
+        if (!b){
+            return AjaxResult.error("创建失败,请联系系统管理员");
+        }
+        return AjaxResult.success();
+    }
+
+}

+ 11 - 2
src/main/java/com/jsh/erp/controller/pda/PdaController.java

@@ -27,6 +27,9 @@ import com.jsh.erp.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -34,6 +37,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.math.BigDecimal;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Date;
@@ -293,14 +297,16 @@ public class PdaController extends BaseController {
 
     @ApiOperation("下载安装包")
     @PostMapping("/downloadApk")
-    public void downloadApk(@RequestBody ApkVersion apkVersion, HttpServletRequest request, HttpServletResponse response) throws Exception {
+    public ResponseEntity downloadApk(@RequestBody ApkVersion apkVersion, HttpServletRequest request, HttpServletResponse response) throws Exception {
         // 将文件路径转换为 Path 对象
         Path path = Paths.get(apkVersion.getUrl()).toAbsolutePath().normalize();
         File file = path.toFile();
         String fileUrl = apkVersion.getUrl();
+        long size = Files.size(path);
+        response.setHeader("Content-Length",size+"");
         // 检查文件是否存在
         if (!file.exists() || !file.isFile()) {
-            return;
+            return null;
         }
         InputStream inputStream = null;
         OutputStream outputStream = null;
@@ -326,6 +332,9 @@ public class PdaController extends BaseController {
                 logger.error(e.getMessage(), e);
             }
         }
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentLength(size); // 手动设置Content-Length为13字节
+        return new ResponseEntity<>(null, headers, HttpStatus.OK);
     }
 
     @ApiOperation("查询版本信息")

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

@@ -105,6 +105,9 @@ public class DepotItem {
     @ApiModelProperty("出入库时间")
     private String warehousingTime;
 
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
     public Long getId() {
         return id;
     }

+ 5 - 0
src/main/java/com/jsh/erp/datasource/vo/MaterialExcelVo.java

@@ -0,0 +1,5 @@
+package com.jsh.erp.datasource.vo;
+
+
+public class MaterialExcelVo {
+}

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

@@ -36,7 +36,6 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * @Description TODO
  * @Author MS.BLUE
  * @Date 2025-04-12
  */

+ 19 - 0
src/main/java/com/jsh/erp/service/impl/DepotHeadServiceImpl.java

@@ -1198,6 +1198,7 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
             Long headId = list.get(0).getId();
             /**入库和出库处理单据子表信息*/
             depotItemService.saveDetials(rows,headId, "add",request);
+            if (!list.get(0).getSubType().equals("其它") || !list.get(0).getSubType().equals("零售"))
             updateTotalPriceById(list.get(0));
         }
         logService.insertLog("单据",
@@ -2023,10 +2024,28 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
                 }
             }
             depotItem.setWarehousingUser(user.getId());
+            if(BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())){
+                //表单入库,修改商品库存
+                materialExtend.setInventory(materialExtend.getInventory().add(depotItem.getBasicNumber()));
+                materialExtendService.updateInventory("单据",depotItem.getId(),materialExtend);
+            }else if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){
+                //表单入库,修改商品库存
+                materialExtend.setInventory(materialExtend.getInventory().subtract(depotItem.getBasicNumber()));
+                materialExtendService.updateInventory("单据",depotItem.getId(),materialExtend);
+            }
+            //基本单位数量*单价
+            depotItem.setAllPrice(depotItem.getBasicNumber().multiply(depotItem.getUnitPrice()));
+            //单价总额 + 税额
+            depotItem.setTaxLastMoney(depotItem.getAllPrice().add(depotItem.getTaxMoney()));
             //添加单据子表
             depotItemService.insertDepotItemWithObj(depotItem);
+            //更新当前库存
+            depotItemService.updateCurrentStock(depotItem);
+            //更新当前成本价
+            depotItemService.updateCurrentUnitPrice(depotItem);
             //修改商品生产日期
             materialExtendService.update(new UpdateWrapper<MaterialExtend>().set("production_date",materialMap.get(batchNumber).getProductionDate()).eq("id", materialExtend.getId()));
+            updateTotalPriceById(depotHead);
         }
         //修改采购订单状态完成
         this.update(new UpdateWrapper<DepotHead>().set("status", "2").eq("id", pdaDepotHeadDTO.getId()));

+ 17 - 0
src/main/java/com/jsh/erp/service/impl/DepotItemServiceImpl.java

@@ -2,6 +2,7 @@ package com.jsh.erp.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+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;
@@ -75,6 +76,9 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
     @Resource
     private MaterialExtendMapper materialExtendMapper;
 
+    @Resource
+    private SyncTescoSystemService syncTescoSystemService;
+
     /**
      * pda根据订单信息查询商品列表
      * @return
@@ -260,6 +264,7 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     public int insertDepotItemWithObj(DepotItem depotItem)throws Exception {
         User user = userService.getCurrentUser();
+        depotItem.setCreateTime(new Date());
         depotItem.setTenantId(user.getId());
         int result =0;
         try{
@@ -1346,6 +1351,7 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
                 //当前库存信息不存在,新增当前库存信息
                 materialCurrentStockMapper.insertSelective(materialCurrentStock);
 //            }
+            syncTescoSystemService.sycnTescoStock(mId);
         }
     }
 
@@ -1665,4 +1671,15 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
         return materialOther;
     }
 
+    //删除前回复库存
+    private void ReplyInventoryByHeadId(Long id) throws Exception {
+        DepotHead depotHead = depotHeadService.getDepotHead(id);
+        List<DepotItem> list = getListByHeaderId(id);
+        for (DepotItem depotItem : list) {
+            if (depotHead.getType().equals("入库")){
+
+            }
+        }
+    }
+
 }

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

@@ -50,6 +50,8 @@ public class MaterialExtendServiceImpl extends ServiceImpl<MaterialExtendMapper,
     private DepotItemService depotItemService;
     @Resource
     private InventoryLogService inventoryLogService;
+    @Resource
+    private SyncTescoSystemService syncTescoSystemService;
 
     @Override
     public MaterialExtend getMaterialExtend(long id)throws Exception {
@@ -509,7 +511,7 @@ public class MaterialExtendServiceImpl extends ServiceImpl<MaterialExtendMapper,
             log.setItemId(id);
             log.setType(type);
             inventoryLogService.save(log);
-            update(new UpdateWrapper<MaterialExtend>().set("inventory",materialExtend.getInventory()).set("position",materialExtend.getPosition()).eq("id",materialExtend.getId()));;
+            update(new UpdateWrapper<MaterialExtend>().set("inventory",materialExtend.getInventory()).set("position",materialExtend.getPosition()).eq("id",materialExtend.getId()));
         }
     }
     /**

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

@@ -1941,16 +1941,6 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
                 } else {
                     m.setEnableSerialNumber("0");
                 }
-                //批号去掉
-//                if(StringUtil.isNotEmpty(enableBatchNumber) && "1".equals(enableBatchNumber)) {
-//                    m.setEnableBatchNumber("1");
-//                } else {
-//                    m.setEnableBatchNumber("0");
-//                }
-//                if("1".equals(enableSerialNumber) && "1".equals(enableBatchNumber)) {
-//                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ENABLE_MUST_ONE_CODE,
-//                            String.format(ExceptionConstants.MATERIAL_ENABLE_MUST_ONE_MSG, barCode));
-//                }
                 //设置库存
                 m.setStockMap(getStockMapCache(src, depotCount, depotMap, i));
                 mList.add(m);
@@ -1974,15 +1964,6 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
                     materialExtendService.insertMaterialExtend(materialExtend);
                 }
             }
-            //批量更新库存,先删除后新增
-//            if(insertInitialStockMaterialList.size()>0) {
-//                batchDeleteInitialStockByMaterialList(deleteInitialStockMaterialIdList);
-//                materialInitialStockMapperEx.batchInsert(insertInitialStockMaterialList);
-//            }
-//            if(insertCurrentStockMaterialList.size()>0) {
-//                batchDeleteCurrentStockByMaterialList(deleteCurrentStockMaterialIdList);
-//                materialCurrentStockMapperEx.batchInsert(insertCurrentStockMaterialList);
-//            }
             //添加日志
             logService.insertLog("商品",
                     new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_IMPORT).append(mList.size()).append(BusinessConstants.LOG_DATA_UNIT).toString(),
@@ -2082,6 +2063,8 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
                 material.setMnemonic(m.getMnemonic());
                 //颜色
                 material.setColor(m.getColor());
+                //商品类别
+                material.setCategoryId(m.getCategoryId());
                 //单位-单个
                 material.setUnit(m.getUnit());
                 //计量单位Id

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

@@ -243,6 +243,9 @@
       <if test="warehousingTime != null and warehousingTime != ''">
         warehousing_time,
       </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -335,6 +338,9 @@
       <if test="warehousingTime != null and warehousingTime != ''">
         #{warehousingTime,jdbcType=DATE},
       </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=DATE},
+      </if>
     </trim>
   </insert>
     <select id="countByExample" parameterType="com.jsh.erp.datasource.entities.DepotItemExample" resultType="java.lang.Long">