Browse Source

重构物料更新

lwx_dev
erdanergou 3 years ago
parent
commit
07b29f6ff3
  1. 10
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  2. 1
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 15
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java
  4. 57
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  5. 3
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  6. 48
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  7. 8
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  8. 6
      src/main/resources/application-test.yml
  9. 2
      src/main/resources/templates/pages/material/material-view.html
  10. 11
      src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java

10
src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java

@ -65,10 +65,9 @@ public class MaterialController {
} }
/** /**
* 查询库存 * 根据条件查询库存
* * @param map 条件
* @param map * @param request 请求
* @param request
* @return * @return
*/ */
@GetMapping("/findInventory") @GetMapping("/findInventory")
@ -219,8 +218,7 @@ public class MaterialController {
/** /**
* 根据id获取物料 * 根据id获取物料
* * @param mid 物料id
* @param mid
* @return * @return
*/ */
@GetMapping("/findMatrialById") @GetMapping("/findMatrialById")

1
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -505,7 +505,6 @@ public class PageController {
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(map); List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(map);
mv.addObject("record", materialService.findMaterialAndTypeById(id)); mv.addObject("record", materialService.findMaterialAndTypeById(id));
mv.addObject("barCodeList", materialByBarCodeByCondition); mv.addObject("barCodeList", materialByBarCodeByCondition);
mv.addObject("materialTypes", materialTypeService.findMaterialTypeAll());
} else { } else {
throw new MyException("缺少必要参数!"); throw new MyException("缺少必要参数!");
} }

15
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java

@ -56,6 +56,21 @@ public interface MaterialMapper {
*/ */
Integer updateMaterial(Material material); Integer updateMaterial(Material material);
/**
* 更新一条库存记录
*
* @param map 参数列表
* @return 受影响的行数
*/
Integer updateInventory(Map<String, Object> map);
/**
* 更新一条库存记录
* @param material 修改的参数
* @return 受影响的行数
*/
Integer updateInventory(Material material);
/** /**
* 将对应仓库id和物料名称的库存修改数量和价格 * 将对应仓库id和物料名称的库存修改数量和价格
* @param map 参数列表 * @param map 参数列表

57
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

@ -772,6 +772,63 @@
WHERE id = #{id} WHERE id = #{id}
</update> </update>
<!-- 修改数据 -->
<update id="updateInventory">
UPDATE material
<set>
<if test="depositoryId != null">
depository_id = #{depositoryId},
</if>
<if test="mname != null">
mname = #{mname},
</if>
<if test="materialTypeId != null">
type_id = #{materialTypeId},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="version != null and version != ''">
version = #{version},
</if>
<if test="code != null and code != ''">
code = #{code},
</if>
<if test="unit != null and unit != ''">
unit = #{unit},
</if>
<if test="depositoryCode != null and depositoryCode !=''">
depositoryCode = #{depositoryCode},
</if>
<if test="numberOfTemporary != null">
number_of_temporary = #{numberOfTemporary},
</if>
<if test="texture != null and texture != ''">
texture = #{texture},
</if>
<if test="shelfLife != null">
shelfLife = #{shelfLife},
</if>
<if test="producedDate != null">
producedDate = #{producedDate},
</if>
<if test="productionPlace != null and productionPlace !=''">
productionPlace = #{productionPlace},
</if>
<if test="brand != '' and brand != null">
brand = #{brand},
</if>
<if test="remark != '' and remark != null">
remark = #{remark}
</if>
</set>
WHERE id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<!-- 根据仓库id和物料名称改变物料的数量 --> <!-- 根据仓库id和物料名称改变物料的数量 -->
<update id="changeMaterial" parameterType="map"> <update id="changeMaterial" parameterType="map">
UPDATE material UPDATE material

3
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -888,7 +888,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 将当前redis中存储的spno删除 // 将当前redis中存储的spno删除
redisTemplate.delete(spNo); redisTemplate.delete(spNo);
} }
} else { }
else {
// 如果是部门负责人 // 如果是部门负责人
String departmentheadTime = recordP.getDepartmentheadTime(); String departmentheadTime = recordP.getDepartmentheadTime();

48
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java

@ -15,11 +15,13 @@ import com.dreamchaser.depository_manage.service.PlaceService;
import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.service.RoleService;
import com.dreamchaser.depository_manage.utils.DateUtil; import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Time; import java.sql.Time;
import java.util.*; import java.util.*;
@ -139,26 +141,58 @@ public class MaterialServiceImpl implements MaterialService {
// 判断是否有保质期 // 判断是否有保质期
String dateType = (String) map.get("dateType"); String dateType = (String) map.get("dateType");
// 1年2月3天 // 1年2月3天
Integer shelfLife = 0; int shelfLife = 0;
if (map.containsKey("shelfLife")) { if (map.containsKey("shelfLife")) {
shelfLife = ObjectFormatUtil.toInteger(map.get("shelfLife")); String life = map.get("shelfLife").toString();
if(!("".equals(life))){
shelfLife = ObjectFormatUtil.toInteger(life);
}else{
shelfLife = -1;
}
} }
if ("day".equals(dateType)) { if ("day".equals(dateType) && shelfLife != -1) {
map.put("shelfLife", ObjectFormatUtil.toInteger("3" + shelfLife)); map.put("shelfLife", ObjectFormatUtil.toInteger("3" + shelfLife));
} else if ("month".equals(dateType)) { } else if ("month".equals(dateType) && shelfLife != -1) {
map.put("shelfLife", ObjectFormatUtil.toInteger("2" + shelfLife)); map.put("shelfLife", ObjectFormatUtil.toInteger("2" + shelfLife));
} else if ("year".equals(dateType)) { } else if ("year".equals(dateType) && shelfLife != -1) {
map.put("shelfLife", ObjectFormatUtil.toInteger("1" + shelfLife)); map.put("shelfLife", ObjectFormatUtil.toInteger("1" + shelfLife));
}else{
map.remove("shelfLife");
} }
if (map.containsKey("producedDate")) { if (map.containsKey("producedDate")) {
Long producedDate = DateUtil.DateTimeByMonthToTimeStamp(map.get("producedDate").toString()); Long producedDate = DateUtil.DateTimeByMonthToTimeStamp(map.get("producedDate").toString());
map.put("producedDate", producedDate); map.put("producedDate", producedDate);
} }
// 开启一个线程去更新对应库存的记录
new Thread(new Runnable() {
@Override
public void run() {
HashMap<String,Object> param = new HashMap<>();
param.putAll(map);
updateInventoryInfo(param);
}
}).start();
return materialMapper.updateMaterial(map); return materialMapper.updateMaterial(map);
} }
/**
* 用于修改对应的库存记录
* @param map
*/
public void updateInventoryInfo(HashMap<String,Object> map){
// 获取要修改的物料编码
HashMap<String,Object> param = new HashMap<>();
param.put("code",map.get("code"));
List<Material> inventory = materialMapper.findInventory(param);
List<Integer> list = new ArrayList<>();
for (int i = 0; i < inventory.size(); i++) {
list.add(inventory.get(i).getId());
}
map.put("list",list);
materialMapper.updateInventory(map);
}
/** /**
* 根据id删除一条库存记录 * 根据id删除一条库存记录
* *

8
src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java

@ -1353,8 +1353,10 @@ public class QyWxOperationService {
/** /**
* 用于发送物料出库审批 * 用于发送物料出库审批
* @param userAgent * @param userAgent 加密后的userAgent
* @return * @param userToken 申请人
* @param mainId 出库的主订单
* @return 发送结果
*/ */
public JSONObject sendOutApprovalTemplate(String userAgent,UserByPort userToken,Integer mainId){ public JSONObject sendOutApprovalTemplate(String userAgent,UserByPort userToken,Integer mainId){
@ -1362,8 +1364,6 @@ public class QyWxOperationService {
ApplicationOutRecordP mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId); ApplicationOutRecordP mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId);
// 获取当前出库明细 // 获取当前出库明细
List<ApplicationOutRecordMin> minRecordList = depositoryRecordMapper.findApplicationOutRecordMinByParent(mainId); List<ApplicationOutRecordMin> minRecordList = depositoryRecordMapper.findApplicationOutRecordMinByParent(mainId);
// 定义审批模板 // 定义审批模板
ApprovalTemplate approvalTemplate = new ApprovalTemplate(); ApprovalTemplate approvalTemplate = new ApprovalTemplate();

6
src/main/resources/application-test.yml

@ -79,9 +79,9 @@ mybatis:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-prefix: mapper. log-prefix: mapper.
#mybatis-plus: mybatis-plus:
# configuration: configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
file: file:
uploadPath: D:/upLoad uploadPath: D:/upLoad

2
src/main/resources/templates/pages/material/material-view.html

@ -103,7 +103,7 @@
<label class="layui-form-label">保质期:</label> <label class="layui-form-label">保质期:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<div class="inputdiv"> <div class="inputdiv">
<input type="number" name="shelfLife" id="shelfLife" placeholder="请填写保质日期" autocomplete="off" lay-verify="required" th:value="${record.getShelfLife()}" <input type="number" name="shelfLife" id="shelfLife" placeholder="请填写保质日期" autocomplete="off" th:value="${record.getShelfLife()}"
class="layui-input" style="border-style: none"> class="layui-input" style="border-style: none">
<select id="dateType" name="dateType"> <select id="dateType" name="dateType">
<option value="year" th:selected="${record.getShowShelfLife() == 'year'}"></option> <option value="year" th:selected="${record.getShowShelfLife() == 'year'}"></option>

11
src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java

@ -28,8 +28,15 @@ public class TestForgetMapData {
@Test @Test
public void Test(){ public void Test(){
Map<String, Object> mapData = getMapData("1"); // HashMap可以实现真正意义上深拷贝,注意不是Map
System.out.println(mapData); HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("name", "Marydon");
HashMap<String, String> paramMap2 = new HashMap<String, String>();
// 实现深拷贝:使用HashMap.putAll()
paramMap2.putAll(paramMap);
paramMap.put("age","19");
System.out.println(paramMap2);// {name=Marydon}
System.out.println(paramMap);// {name=Marydon}
} }
// 中国地图数据 // 中国地图数据

Loading…
Cancel
Save