Browse Source

更新各模块的禁用功能

lwx_dev
erdanergou 3 years ago
parent
commit
4caf60f37a
  1. 11
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java
  2. 21
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  3. 2
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  4. 23
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  5. 7
      src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java
  6. 14
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java
  7. 42
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  8. 2
      src/main/java/com/dreamchaser/depository_manage/mapper/StockTakingMapper.java
  9. 3
      src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java
  10. 8
      src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java
  11. 7
      src/main/java/com/dreamchaser/depository_manage/service/StockTakingService.java
  12. 12
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  13. 7
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java
  14. 20
      src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java
  15. 17
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  16. 5
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java
  17. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java
  18. 11
      src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java
  19. 6
      src/main/resources/templates/pages/chart/chart-in_back.html
  20. 5
      src/main/resources/templates/pages/depository/table-stock.html
  21. 96
      src/main/resources/templates/pages/warehouse/depository-out.html
  22. 147
      src/test/java/com/dreamchaser/depository_manage/TestFoFindDepositoryMaterial.java
  23. 42
      target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  24. 6
      target/classes/templates/pages/chart/chart-in_back.html
  25. 5
      target/classes/templates/pages/depository/table-stock.html
  26. 96
      target/classes/templates/pages/warehouse/depository-out.html

11
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java

@ -1462,8 +1462,9 @@ public class DepositoryController {
}
List<Depository> depositoryRecordPByCondition = depositoryService.findDepositoryByCondition(param, userToken);
for (int i = 0; i < depositoryRecordPByCondition.size(); i++) {
if (!findMaterialByDepository(depositoryRecordPByCondition.get(i).getId().toString())) {
findAllSonDepository(depositoryRecordPByCondition.get(i).getId().toString(), userToken);
String depositoryId = depositoryRecordPByCondition.get(i).getId().toString();
if (!findMaterialByDepository(depositoryId)) {
findAllSonDepository(depositoryId, userToken);
} else {
return true;
}
@ -1509,7 +1510,7 @@ public class DepositoryController {
Map<String, Object> param = new HashMap<>();
param.put("state", 1);
param.put("depositoryId", parentId);
List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(param);
List<InventoryP> materialPByCondition = materialService.findInventory(param);
if (materialPByCondition.size() > 0) {
return true;
}
@ -1594,7 +1595,7 @@ public class DepositoryController {
// 根据id获取仓库信息
@GetMapping("/findDepositoryByDid")
public RestResponse findDepositoryByDid(@RequestParam(value = "depositoryId") Integer depositoryId) {
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId);
Depository depositoryRecordById = depositoryService.findDepositoryById(depositoryId);
return new RestResponse(depositoryRecordById);
}
@ -1607,7 +1608,7 @@ public class DepositoryController {
String qrCode = snowflake.nextIdStr();
Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId"));
Depository depository = depositoryService.findDepositoryRecordById(depositoryId);
Depository depository = depositoryService.findDepositoryById(depositoryId);
String qrCodeByDepository = depositoryService.findQrCodeByDepository(depository.getId());
if (qrCodeByDepository == null) {

21
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java

@ -43,15 +43,6 @@ public class DepositoryRecordController {
@GetMapping("/depositoryRecord")
public RestResponse findDepositoryRecordByCondition(@RequestParam Map<String,Object> map,HttpServletRequest request){
List<DepositoryRecordP> list=depositoryRecordService.findDepositoryRecordPByCondition(map,request);
for (int i = 0; i < list.size(); i++) {
list.get(i).setPrice(list.get(i).getPrice() / 100);
}
return new RestResponse(list,depositoryRecordService.findCountByCondition(map),200);
}
@GetMapping("/myApply")
public RestResponse findDepositoryInAndOutRecordPByCondition(@RequestParam Map<String,Object> map,HttpServletRequest request){
UserByPort userToken= (UserByPort) request.getAttribute("userToken");
@ -150,7 +141,7 @@ public class DepositoryRecordController {
// 获取数据库中子订单信息
ApplicationOutRecordMin applicationOutMinById = depositoryRecordService.findApplicationOutMinById(ObjectFormatUtil.toInteger(minRecordId));
// 获取仓库信息
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(applicationOutMinById.getDepositoryId());
Depository depositoryRecordById = depositoryService.findDepositoryById(applicationOutMinById.getDepositoryId());
// 获取子订单对应主订单
ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(applicationOutMinById.getParentId());
// 创建展示对象
@ -175,7 +166,7 @@ public class DepositoryRecordController {
UserByPort userToken= (UserByPort) request.getAttribute("userToken");
map.put("applicantId",userToken.getId());
Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId"));
Depository depository = depositoryService.findDepositoryRecordById(depositoryId);
Depository depository = depositoryService.findDepositoryById(depositoryId);
return CrudUtil.postHandle(depositoryRecordService.apply(map),1);
}
@ -446,7 +437,7 @@ public class DepositoryRecordController {
Integer stateOnView =ObjectFormatUtil.toInteger(map.get("state"));
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
// 获取当前仓库信息
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId);
Depository depositoryRecordById = depositoryService.findDepositoryById(depositoryId);
// 获取当前用户要处理的记录信息
String minRecord = (String) redisTemplateForHash.opsForHash().get("user:"+userToken.getId(),"minRecord");
// 获取子订单键值
@ -576,7 +567,7 @@ public class DepositoryRecordController {
// 获取出库物料信息
Material materialById = materialService.findMaterialById(applicationOutRecordMin.getMid());
// 获取出库物料仓库信息
Depository depository = depositoryService.findDepositoryRecordById(applicationOutRecordMin.getDepositoryId());
Depository depository = depositoryService.findDepositoryById(applicationOutRecordMin.getDepositoryId());
mname.append(materialById.getMname()).append(",");
mcode.append(materialById.getCode()).append(",");
depositoryName.append(depository.getDname()).append(",");
@ -846,7 +837,7 @@ public class DepositoryRecordController {
// 获取物料信息
Inventory materialById = materialService.findInventoryByMid(mid);
// 获取仓库信息
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId);
Depository depositoryRecordById = depositoryService.findDepositoryById(depositoryId);
ApplicationModel ap = new ApplicationModel();
ap.setDepositoryId(depositoryId);
@ -1115,7 +1106,7 @@ public class DepositoryRecordController {
// 获取失败的物料信息
Material materialById = materialService.findMaterialById(mid);
// 获取失败的仓库信息
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId);
Depository depositoryRecordById = depositoryService.findDepositoryById(depositoryId);
errMsg += materialById.getMname() + "在"+depositoryRecordById.getDname()+"出库数量为"+quantity +"失败,数量不足;";
}
}

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

@ -1510,7 +1510,7 @@ public class MaterialController {
flag = 2;
} else {
// 如果是仓库
Depository depository = depositoryService.findDepositoryRecordById(ObjectFormatUtil.toInteger(locationByQrCode.getDepositoryId()));
Depository depository = depositoryService.findDepositoryById(ObjectFormatUtil.toInteger(locationByQrCode.getDepositoryId()));
result.put("depository", depository);
flag = 3;
}

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

@ -635,7 +635,7 @@ public class PageController {
materialById = materialService.findInventoryByMid(mid);
}
if (depositoryId != null) {
depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId);
depositoryRecordById = depositoryService.findDepositoryById(depositoryId);
}
if (materialById.getShelfLife() == null) {
mv.addObject("display", "none");
@ -667,7 +667,7 @@ public class PageController {
InventoryP materialById = new InventoryP();
if (code != null) {
Map<String, Object> map = new HashMap<>();
Depository depositoryByCode = depositoryService.findDepositoryRecordById(ObjectFormatUtil.toInteger(depositoryId));
Depository depositoryByCode = depositoryService.findDepositoryById(ObjectFormatUtil.toInteger(depositoryId));
map.put("depositoryId", depositoryByCode.getId());
map.put("mcode", code);
List<InventoryP> inventory = materialService.findInventory(map);
@ -973,7 +973,7 @@ public class PageController {
ModelAndView mv = new ModelAndView();
mv.setViewName("pages/warehouse/warehouse_view");
if (id != null) {
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(id);
Depository depositoryRecordById = depositoryService.findDepositoryById(id);
// 用于二维码存放数据
mv.addObject("record", depositoryRecordById);
@ -1054,6 +1054,8 @@ public class PageController {
param.put("parentId", parentId);
mv.addObject("parentId", parentId);
List<Depository> depositoryRecordPByCondition = depositoryService.findDepositoryByCondition(param, userByPort);
param.put("state",2);
List<Depository> depositoryRecordPByConditionForState = depositoryService.findDepositoryByCondition(param, userByPort);
Integer role = userByPort.getIsadmin();
if (role == null) {
role = 1;
@ -1063,10 +1065,11 @@ public class PageController {
} else {
mv.addObject("display", "none");
}
if (depositoryRecordPByCondition.size() > 0) {
if (depositoryRecordPByCondition.size() > 0 || depositoryRecordPByConditionForState.size() > 0) {
mv.addObject("depositories", depositoryRecordPByCondition);
mv.setViewName("pages/warehouse/depository-out");
} else {
List<Place> placeByDid = placeService.findPlaceByDid(parentId);
mv.addObject("placeList", placeByDid);
mv.setViewName("pages/warehouse/warehouseByParentId");
@ -1186,7 +1189,7 @@ public class PageController {
// 获取出库物料信息
Inventory materialById = materialService.findInventoryByMid(applicationOutRecordMin.getMid());
// 获取出库物料仓库信息
Depository depository = depositoryService.findDepositoryRecordById(applicationOutRecordMin.getDepositoryId());
Depository depository = depositoryService.findDepositoryById(applicationOutRecordMin.getDepositoryId());
// 获取出库库位
Place placeById = placeService.findPlaceById(applicationOutRecordMin.getPlaceId());
if (placeById != null) {
@ -1272,7 +1275,7 @@ public class PageController {
// 获取出库物料信息
Inventory materialById = materialService.findInventoryByMid(recordMin.getMid());
// 获取出库物料仓库信息
Depository depository = depositoryService.findDepositoryRecordById(recordMin.getDepositoryId());
Depository depository = depositoryService.findDepositoryById(recordMin.getDepositoryId());
// 获取出库库位
Place placeById = placeService.findPlaceById(recordMin.getPlaceId());
// 获取处理人
@ -1333,7 +1336,7 @@ public class PageController {
// 获取出库物料信息
Inventory materialById = materialService.findInventoryByMid(applicationOutRecordMin.getMid());
// 获取出库物料仓库信息
Depository depository = depositoryService.findDepositoryRecordById(applicationOutRecordMin.getDepositoryId());
Depository depository = depositoryService.findDepositoryById(applicationOutRecordMin.getDepositoryId());
// 获取出库库位
Place placeById = placeService.findPlaceById(applicationOutRecordMin.getPlaceId());
if (placeById != null) {
@ -1460,7 +1463,7 @@ public class PageController {
// 获取盘点位置
Integer placeId = stockTaking.getPlaceId();
StringBuilder location = new StringBuilder();
Depository depository = depositoryService.findDepositoryRecordById(stockTaking.getDepositoryId());
Depository depository = depositoryService.findDepositoryById(stockTaking.getDepositoryId());
location.append(depository.getDname());
if (!(Integer.compare(placeId, 0) == 0)) {
// 如果不是默认库位
@ -1539,7 +1542,7 @@ public class PageController {
// 获取盘点位置
Integer placeId = stockTaking.getPlaceId();
StringBuilder location = new StringBuilder();
Depository depository = depositoryService.findDepositoryRecordById(stockTaking.getDepositoryId());
Depository depository = depositoryService.findDepositoryById(stockTaking.getDepositoryId());
location.append(depository.getDname());
if (!(Integer.compare(placeId, 0) == 0)) {
// 如果不是默认库位
@ -2023,7 +2026,7 @@ public class PageController {
@GetMapping("/ApplicationOutMinByDidForMobile")
public ModelAndView ApplicationOutMinByDidForMobile(Integer depositoryId, Integer state, HttpServletRequest request) {
ModelAndView mv = new ModelAndView();
Depository depository = depositoryService.findDepositoryRecordById(depositoryId);
Depository depository = depositoryService.findDepositoryById(depositoryId);
mv.addObject("depositoryId", depositoryId);
mv.addObject("state", state);
mv.addObject("depository", depository);

7
src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java

@ -1,7 +1,6 @@
package com.dreamchaser.depository_manage.controller;
import cn.hutool.core.lang.Snowflake;
import com.baomidou.mybatisplus.extension.api.R;
import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.exception.MyException;
import com.dreamchaser.depository_manage.pojo.*;
@ -47,7 +46,7 @@ public class PlaceController {
Place place = placeByCondition.get(i);
PlaceP placeP = new PlaceP(place);
Integer depositoryId = place.getDid();
Depository depositoryById = depositoryService.findDepositoryRecordById(depositoryId);
Depository depositoryById = depositoryService.findDepositoryById(depositoryId);
// 获取当前库位所有的物料信息
List<MaterialAndPlace> placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(place.getId());
if(placeAndMaterialByPid == null){
@ -293,7 +292,7 @@ public class PlaceController {
// 如果是默认库位
placeP.setDepositoryName("默认库位-0000");
}else {
Depository depository = depositoryService.findDepositoryRecordById(placeP.getDid());
Depository depository = depositoryService.findDepositoryById(placeP.getDid());
placeP.setDepositoryName(depository.getDname() + "-"+placeP.getCode());
}
result.put("flag",1);
@ -302,7 +301,7 @@ public class PlaceController {
// 如果当前位置为仓库
// 获取当前仓库
Depository depository = depositoryService.findDepositoryRecordById(Integer.parseInt(locationByQrCode.getDepositoryId().toString()));
Depository depository = depositoryService.findDepositoryById(Integer.parseInt(locationByQrCode.getDepositoryId().toString()));
result.put("flag",2);
result.put("depository",depository);
}

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

@ -23,6 +23,13 @@ public interface MaterialMapper {
*/
Integer insertMaterial(Map<String, Object> map);
/**
* 根据物料名与物料规格型号查询对应的物料
* @param map
* @return
*/
Material findMaterialByMnameAndVersion(Map<String,Object> map);
/**
@ -136,6 +143,13 @@ public interface MaterialMapper {
*/
List<Inventory> findInventory(Map<String,Object> map);
/**
* 根据条件查询符合条件的库存
* @param map
* @return
*/
List<Inventory> findInventoryForImport(Map<String,Object> map);
/**
* 根据物料id与仓库id查询库存信息

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

@ -195,7 +195,24 @@
and state != 3 and m.depository_id is null
</select>
<select id="findMaterialByMnameAndVersion" resultMap="materialMap" parameterType="map">
SELECT
<include refid="allColumnsAndTypeNameOnView" />
from findMaterial
where 1 = 1
<if test="mname != null and mname != ''">
and mname = #{mname}
</if>
<if test="version == null or version == ''">
and version is null
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
</select>
<!-- 根据条件参数查询数据列表 -->
<select id="findMaterialByCondition" resultMap="materialMap" parameterType="map">
SELECT
@ -241,6 +258,9 @@
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
and depository_id is null
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
@ -322,7 +342,25 @@
</if>
</select>
<!--根据条件查询库存-->
<select id="findInventoryForImport" resultMap="InventoryMap" parameterType="map">
SELECT
<include refid="allColumnsAndTypeNameOnViewByInventory" />
from findInventory
where 1 = 1
<if test="depositoryId != null">
AND depositoryId = #{depositoryId}
</if>
<if test="mname != null and mname != ''">
AND mname LIKE CONCAT('%', #{mname}, '%')
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="version == null or version == ''">
and version is null
</if>
</select>
<select id="findMaterialCount" parameterType="map" resultType="int">
select count(*)

2
src/main/java/com/dreamchaser/depository_manage/mapper/StockTakingMapper.java

@ -146,6 +146,8 @@ public interface StockTakingMapper {
* @return
*/
StockTaking selectStockTakingById(Long id);
/**
* 根据主键查找盘点详情
* @param id

3
src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java

@ -54,7 +54,8 @@ public interface DepositoryService {
* @param id
* @return 查询数据
*/
Depository findDepositoryRecordById(Integer id);
Depository findDepositoryById(Integer id);
/**
* 根据多个id获取数据

8
src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java

@ -50,6 +50,14 @@ public interface MaterialService {
*/
List<MaterialP> findMaterialPByCondition(Map<String, Object> map);
/**
* 根据物料名与物料规格型号查询对应的物料
* @param map
* @return
*/
Material findMaterialByMnameAndVersion(Map<String,Object> map);
/**
* 根据条件查询符合条件的库存
* @param map

7
src/main/java/com/dreamchaser/depository_manage/service/StockTakingService.java

@ -85,6 +85,13 @@ public interface StockTakingService {
*/
StockTakingChildP findStockTakingChildPById(Integer id);
/**
* 根据条件查询盘点记录
* @param map 查询条件
* @return
*/
List<StockTaking> findStockTakingByCondition(Map<String,Object> map);
/**
* 用于对盘点进行审核
* @param map

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

@ -1886,12 +1886,12 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
map.put("applicantTime", DateUtil.DateTimeByDayToTimeStamp(applyTime));
}
List<ApplicationInRecordP> list = depositoryRecordMapper.findApplicationInRecordPByCondition(map);
for (int i = 0; i < list.size(); i++) {
UserByPort userByPortById = findUserByPortById(list.get(i).getApplicantId(), request);
String time = DateUtil.TimeStampToDateTime(Long.valueOf(list.get(i).getApplicantTime()));
list.get(i).setApplicantName(userByPortById.getName());
list.get(i).setApplicantTime(time);
list.get(i).setApplyRemark(list.get(i).getApplyRemark() == null ? "" : list.get(i).getApplyRemark());
for (ApplicationInRecordP applicationInRecordP : list) {
UserByPort userByPortById = findUserByPortById(applicationInRecordP.getApplicantId(), request);
String time = DateUtil.TimeStampToDateTime(Long.valueOf(applicationInRecordP.getApplicantTime()));
applicationInRecordP.setApplicantName(userByPortById.getName());
applicationInRecordP.setApplicantTime(time);
applicationInRecordP.setApplyRemark(applicationInRecordP.getApplyRemark() == null ? "" : applicationInRecordP.getApplyRemark());
}
return list;
}

7
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java

@ -129,6 +129,11 @@ public class DepositoryServiceImpl implements DepositoryService {
page = ObjectFormatUtil.toInteger(map.get("page"));
map.put("begin", (page - 1) * size);
}
Object state = 1;
if(map.containsKey("state")){
state = map.get("state");
}
map.put("state",state);
List<Depository> list = depositoryMapper.findDepositoryByCondition(map);
for (int i = 0; i < list.size(); i++) {
Depository depository = list.get(i);
@ -187,7 +192,7 @@ public class DepositoryServiceImpl implements DepositoryService {
* @return 查询结果
*/
@Override
public Depository findDepositoryRecordById(Integer id) {
public Depository findDepositoryById(Integer id) {
return depositoryMapper.findDepositoryById(id);
}

20
src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java

@ -2,6 +2,7 @@ package com.dreamchaser.depository_manage.service.impl;
import com.alibaba.fastjson.JSON;
import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.pojo.InventoryP;
import com.dreamchaser.depository_manage.pojo.MaterialP;
import com.dreamchaser.depository_manage.service.ExcelService;
import com.dreamchaser.depository_manage.service.MaterialService;
@ -296,29 +297,29 @@ public class ExcelServiceImpl implements ExcelService {
insert.put("mname", excelInfoByInventory.getMname());
insert.put("version",excelInfoByInventory.getVersion());
// 获取对应物料
MaterialP materialByCode = materialService.findMaterialPByCondition(insert).get(0);
// 添加库存记录
Material material = materialService.findMaterialByMnameAndVersion(insert);
// 添加库存记录
Integer depositoryId = excelInfoByInventory.getDepositoryId();
insert.put("tempPlaceCode", excelInfoByInventory.getDepositoryCode());
insert.put("quantity", String.valueOf(ObjectFormatUtil.toInteger(excelInfoByInventory.getQuantity()) + materialByCode.getQuantity()));
insert.put("quantity", String.valueOf(ObjectFormatUtil.toInteger(excelInfoByInventory.getQuantity())));
// 如果模板中总金额未填写
if (excelInfoByInventory.getAmounts() == null || "".equals(excelInfoByInventory.getAmounts())) {
// 求均值
// 总金额
Double amounts = Double.parseDouble(excelInfoByInventory.getPrice()) * 100 * Double.parseDouble(excelInfoByInventory.getQuantity());
insert.put("amounts", String.valueOf(materialByCode.getAmounts() + amounts));
insert.put("amounts", amounts);
// 保留两位
Double avgPrice = (materialByCode.getAmounts() + amounts) / (Double.parseDouble(excelInfoByInventory.getQuantity()) + materialByCode.getQuantity());
Double avgPrice = Double.parseDouble(excelInfoByInventory.getQuantity());
BigDecimal bg = new BigDecimal(avgPrice);
avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
insert.put("price", String.valueOf(avgPrice));
} else {
// 求均值
insert.put("amounts", String.valueOf(materialByCode.getAmounts() + Double.parseDouble(excelInfoByInventory.getAmounts()) * 100));
Double avgPrice = (materialByCode.getAmounts() + Double.parseDouble(excelInfoByInventory.getAmounts()) * 100) / ((Double.parseDouble(excelInfoByInventory.getQuantity()) + materialByCode.getQuantity()));
insert.put("amounts", Double.parseDouble(excelInfoByInventory.getAmounts()) * 100);
Double avgPrice = ( Double.parseDouble(excelInfoByInventory.getAmounts()) * 100) / ((Double.parseDouble(excelInfoByInventory.getQuantity()) ));
// 保留两位
BigDecimal bg = new BigDecimal(avgPrice);
avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
@ -326,7 +327,8 @@ public class ExcelServiceImpl implements ExcelService {
}
insert.put("depositoryId", depositoryId);
insert.put("depositoryCode", excelInfoByInventory.getDepositoryCode());
insert.put("mid",materialByCode.getId());
insert.put("mid", material.getId());
// 插入库存记录
materialService.insertInventoryForImport(insert);

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

@ -192,6 +192,11 @@ public class MaterialServiceImpl implements MaterialService {
page = ObjectFormatUtil.toInteger(map.get("page"));
map.put("begin", (page - 1) * size);
}
Object state = 1;
if(map.containsKey("state")){
state = map.get("state");
}
map.put("state",state);
List<Material> list = materialMapper.findMaterialByCondition(map);
for (int i = 0; i < list.size(); i++) {
list.get(i).setPrice(list.get(i).getPrice() / 100);
@ -219,6 +224,16 @@ public class MaterialServiceImpl implements MaterialService {
return packForMatieral(list);
}
/**
* 根据物料名与物料规格型号查询对应的物料
* @param map
* @return
*/
@Override
public Material findMaterialByMnameAndVersion(Map<String, Object> map) {
return materialMapper.findMaterialByMnameAndVersion(map);
}
/**
* 根据条件查询符合条件的库存信息
*
@ -716,7 +731,7 @@ public class MaterialServiceImpl implements MaterialService {
params.put("mname",map.get("mname"));
params.put("version",map.get("version"));
params.put("depositoryId", map.get("depositoryId"));
List<Inventory> inventory = materialMapper.findInventory(params);
List<Inventory> inventory = materialMapper.findInventoryForImport(params);
if (inventory.size() >= 1) {
// 用于标志是新插入的物料
map.put("isNew", false);

5
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java

@ -81,6 +81,11 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
page=ObjectFormatUtil.toInteger(map.get("page"));
map.put("begin",(page-1)*size);
}
Object state = 1;
if(map.containsKey("state")){
state = map.get("state");
}
map.put("state",state);
return materialTypeMapper.findMaterialTypeByCondition(map);
}

2
src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java

@ -192,7 +192,7 @@ public class PlaceServiceImpl implements PlaceService {
PlaceP pp = new PlaceP(place);
Integer did = place.getDid();
if(did != 0){
Depository depositoryRecordById = depositoryService.findDepositoryRecordById(did);
Depository depositoryRecordById = depositoryService.findDepositoryById(did);
pp.setDepositoryName(depositoryRecordById.getDname());
}else{
pp.setDepositoryName("默认库位");

11
src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java

@ -278,6 +278,17 @@ public class StockTakingServiceImpl implements StockTakingService {
return stockTakingMapper.selectStockTakingChildPById(id);
}
/**
* 根据条件查询盘点记录
* @param map 查询条件
* @return
*/
@Override
public List<StockTaking> findStockTakingByCondition(Map<String, Object> map) {
return stockTakingMapper.selectStockTakingByCondition(map);
}
/**
* 用于对盘点进行审核
*

6
src/main/resources/templates/pages/chart/chart-in_back.html

@ -42,7 +42,7 @@
<div class="layui-col-xs12 layui-col-md3">
<div class="layui-card top-panel">
<div class="layui-card-header">当日入物料数量</div>
<div class="layui-card-header">当日入物料数量</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space5">
<div class="layui-col-xs7 layui-col-md7 top-panel-number">
@ -59,7 +59,7 @@
<div class="layui-col-xs12 layui-col-md3">
<div class="layui-card top-panel">
<div class="layui-card-header">当日入物料金额</div>
<div class="layui-card-header">当日入物料金额</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space5">
<div class="layui-col-xs7 layui-col-md7 top-panel-number">
@ -76,7 +76,7 @@
<div class="layui-col-xs12 layui-col-md3">
<div class="layui-card top-panel">
<div class="layui-card-header">全部入物料数量</div>
<div class="layui-card-header">全部入物料数量</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space5">
<div class="layui-col-xs7 layui-col-md7 top-panel-number">

5
src/main/resources/templates/pages/depository/table-stock.html

@ -401,11 +401,12 @@
re += show
}
for (let i = 0; i < res.data.dataList.length; i++) {
var code = res.data.dataList[i]["code"] === null?'':res.data.dataList[i]["code"];
var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"] === null?'':res.data.dataList[i]["version"];
var price = res.data.dataList[i]["price"];
var quantity = res.data.dataList[i]["quantity"];
var show = "<p style='color: #00FF00'>" + mname + " " + code + " " + price + " " + quantity + ":成功" + "</p>";
var show = "<p style='color: #00FF00'>" + code+", "+mname + ", " + version + ", 单价为" + price + ", 数量为" + quantity + ":成功" + "</p>";
re += show
}

96
src/main/resources/templates/pages/warehouse/depository-out.html

@ -451,21 +451,23 @@
if (obj.elem.checked) {
req["state"] = 1
}
req["id"] = this.value
if (req["state"] == undefined) {// 如果禁用
req["id"] = this.value;
if (req["state"] === undefined) {// 如果禁用
$.ajax({
url: "/repository/findMaterialByDepository?depositoryId=" + this.value,
type: "get",
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {
hasMaterial = data.data
success: function (d) {
hasMaterial = d.data;
// 子仓库下是否有物品
if (hasMaterial) { // 有
layer.confirm('仓库下还有物品,确定封库?', {
btn: ['封库', '取消'] //按钮
}, function () {
req["envelop"] = 1 // 封库操作
},
function () {
req["envelop"] = 1; // 封库操作
$.ajax({
url: "/repository/EditDepositoryState",
type: 'post',
@ -497,7 +499,8 @@
}
}
})
}, function () {
},
function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
@ -507,38 +510,55 @@
where: {"parentId": parentId}
});
});
} else {
$.ajax({
url: "/repository/EditDepositoryState",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId": parentId}
});
})
}
else {
layer.confirm('确定封库?',{
btn:['确定','取消']
},
function () {
$.ajax({
url: "/repository/EditDepositoryState",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId": parentId}
});
})
}
}
}
})
})
},
function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId": parentId}
});
})
}
}
})

147
src/test/java/com/dreamchaser/depository_manage/TestFoFindDepositoryMaterial.java

@ -0,0 +1,147 @@
package com.dreamchaser.depository_manage;
import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.pojo.ApplicationInRecordP;
import com.dreamchaser.depository_manage.pojo.ApplicationOutRecordP;
import com.dreamchaser.depository_manage.pojo.DepositoryRecordP;
import com.dreamchaser.depository_manage.pojo.InventoryP;
import com.dreamchaser.depository_manage.service.DepositoryRecordService;
import com.dreamchaser.depository_manage.service.DepositoryService;
import com.dreamchaser.depository_manage.service.MaterialService;
import com.dreamchaser.depository_manage.service.StockTakingService;
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestFoFindDepositoryMaterial {
@Autowired
DepositoryService depositoryService;
@Autowired
DepositoryRecordService depositoryRecordService;
@Autowired
MaterialService materialService;
@Autowired
StockTakingService stockTakingService;
@Test
public void Test(){
UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null);
Boolean allSonDepository = findAllSonDepositoryOfRelevancy("48",null);
System.out.println(allSonDepository);
}
/**
* 根据父级编号查询所有关联信息
*
* @param did
* @return
*/
public Boolean findAllSonDepositoryOfRelevancy(String did, HttpServletRequest request) {
// 判断当前仓库是否存在物料
boolean materialByDepository = findMaterialByDepository(did);
// 判断当前仓库是否有相关订单
boolean depositoryRecord = findDepositoryRecord(did, request);
if (materialByDepository || depositoryRecord) {
return true;
}
// 查询当前仓库
Depository depositoryById = depositoryService.findDepositoryById(ObjectFormatUtil.toInteger(did));
// 查询当前仓库及子仓库
List<Integer> childForDepositoryByParent = findChildForDepositoryByParent(depositoryById);
List<Depository> depositories = depositoryService.selectDepositoryRecordByIds(childForDepositoryByParent);
for (Depository depository : depositories) {
String depositoryId = depository.getId().toString();
if (findMaterialByDepository(depositoryId) || findDepositoryRecord(depositoryId, request)) {
return true;
}
}
return false;
}
/**
* 根据仓库编号判断该仓库是否有物品
*
* @param depositoryId 待查询仓库id
* @return
*/
public boolean findMaterialByDepository(String depositoryId) {
Map<String, Object> param = new HashMap<>();
param.put("state", 1);
param.put("depositoryId", depositoryId);
List<InventoryP> materialPByCondition = materialService.findInventory(param);
return materialPByCondition.size() > 0;
}
/**
* 根据仓库编号查询与其有关的订单信息
* @param depositoryId 待查询仓库id
* @return
*/
public Boolean findDepositoryRecord(String depositoryId, HttpServletRequest request) {
Map<String, Object> param = new HashMap<>();
param.put("depositoryId", depositoryId);
List<ApplicationInRecordP> inRecordPList = depositoryRecordService.findApplicationInRecordPByCondition(param,request);
List<ApplicationOutRecordP> outRecordPList = depositoryRecordService.findApplicationOutRecordPByCondition(param, request);
List<StockTaking> stockTakingList = stockTakingService.findStockTakingByCondition(param);
return inRecordPList.size() > 0 || outRecordPList.size() > 0 || stockTakingList.size() > 0;
}
/**
* 用于获取当前仓库的所有子类
* @param d 待查询仓库
* @return
*/
public List<Integer> findChildForDepositoryByParent(Depository d) {
// 用于存储最终返回结果
List<Integer> result = new ArrayList<>();
result.add(d.getId());
// 父级
List<Integer> parentId = new ArrayList<>();
parentId.add(d.getId());
// 查询所有仓库正常使用的仓库
List<Depository> depositoryAll = depositoryService.findDepositoryAll();
for (Depository depository : depositoryAll) {
if (isTrueForParent(parentId, depository.getParentId())) {
parentId.add(depository.getId());
result.add(depository.getId());
}
}
return result;
}
/**
* 判断当前id是否在ids中
*
* @param parentList 父级列表
* @param id 待判断id
* @return
*/
public Boolean isTrueForParent(List<Integer> parentList, Integer id) {
for (Integer aLong : parentList) {
if (Long.compare(aLong, id) == 0) {
return true;
}
}
return false;
}
}

42
target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

@ -195,7 +195,24 @@
and state != 3 and m.depository_id is null
</select>
<select id="findMaterialByMnameAndVersion" resultMap="materialMap" parameterType="map">
SELECT
<include refid="allColumnsAndTypeNameOnView" />
from findMaterial
where 1 = 1
<if test="mname != null and mname != ''">
and mname = #{mname}
</if>
<if test="version == null or version == ''">
and version is null
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
</select>
<!-- 根据条件参数查询数据列表 -->
<select id="findMaterialByCondition" resultMap="materialMap" parameterType="map">
SELECT
@ -241,6 +258,9 @@
<if test="remark != '' and remark != null">
and remark LIKE CONCAT('%', #{remark}, '%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
and depository_id is null
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
@ -322,7 +342,25 @@
</if>
</select>
<!--根据条件查询库存-->
<select id="findInventoryForImport" resultMap="InventoryMap" parameterType="map">
SELECT
<include refid="allColumnsAndTypeNameOnViewByInventory" />
from findInventory
where 1 = 1
<if test="depositoryId != null">
AND depositoryId = #{depositoryId}
</if>
<if test="mname != null and mname != ''">
AND mname LIKE CONCAT('%', #{mname}, '%')
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="version == null or version == ''">
and version is null
</if>
</select>
<select id="findMaterialCount" parameterType="map" resultType="int">
select count(*)

6
target/classes/templates/pages/chart/chart-in_back.html

@ -42,7 +42,7 @@
<div class="layui-col-xs12 layui-col-md3">
<div class="layui-card top-panel">
<div class="layui-card-header">当日入物料数量</div>
<div class="layui-card-header">当日入物料数量</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space5">
<div class="layui-col-xs7 layui-col-md7 top-panel-number">
@ -59,7 +59,7 @@
<div class="layui-col-xs12 layui-col-md3">
<div class="layui-card top-panel">
<div class="layui-card-header">当日入物料金额</div>
<div class="layui-card-header">当日入物料金额</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space5">
<div class="layui-col-xs7 layui-col-md7 top-panel-number">
@ -76,7 +76,7 @@
<div class="layui-col-xs12 layui-col-md3">
<div class="layui-card top-panel">
<div class="layui-card-header">全部入物料数量</div>
<div class="layui-card-header">全部入物料数量</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space5">
<div class="layui-col-xs7 layui-col-md7 top-panel-number">

5
target/classes/templates/pages/depository/table-stock.html

@ -401,11 +401,12 @@
re += show
}
for (let i = 0; i < res.data.dataList.length; i++) {
var code = res.data.dataList[i]["code"] === null?'':res.data.dataList[i]["code"];
var mname = res.data.dataList[i]["mname"];
var code = res.data.dataList[i]["code"];
var version = res.data.dataList[i]["version"] === null?'':res.data.dataList[i]["version"];
var price = res.data.dataList[i]["price"];
var quantity = res.data.dataList[i]["quantity"];
var show = "<p style='color: #00FF00'>" + mname + " " + code + " " + price + " " + quantity + ":成功" + "</p>";
var show = "<p style='color: #00FF00'>" + code+", "+mname + ", " + version + ", 单价为" + price + ", 数量为" + quantity + ":成功" + "</p>";
re += show
}

96
target/classes/templates/pages/warehouse/depository-out.html

@ -451,21 +451,23 @@
if (obj.elem.checked) {
req["state"] = 1
}
req["id"] = this.value
if (req["state"] == undefined) {// 如果禁用
req["id"] = this.value;
if (req["state"] === undefined) {// 如果禁用
$.ajax({
url: "/repository/findMaterialByDepository?depositoryId=" + this.value,
type: "get",
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {
hasMaterial = data.data
success: function (d) {
hasMaterial = d.data;
// 子仓库下是否有物品
if (hasMaterial) { // 有
layer.confirm('仓库下还有物品,确定封库?', {
btn: ['封库', '取消'] //按钮
}, function () {
req["envelop"] = 1 // 封库操作
},
function () {
req["envelop"] = 1; // 封库操作
$.ajax({
url: "/repository/EditDepositoryState",
type: 'post',
@ -497,7 +499,8 @@
}
}
})
}, function () {
},
function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
@ -507,38 +510,55 @@
where: {"parentId": parentId}
});
});
} else {
$.ajax({
url: "/repository/EditDepositoryState",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId": parentId}
});
})
}
else {
layer.confirm('确定封库?',{
btn:['确定','取消']
},
function () {
$.ajax({
url: "/repository/EditDepositoryState",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId": parentId}
});
})
}
}
}
})
})
},
function () {
// 执行重加载
table.reload('currentTableId', {
url: '/repository/warehouseRecord',
page: {
curr: 1
},
where: {"parentId": parentId}
});
})
}
}
})

Loading…
Cancel
Save