Browse Source

功能基本完成

lwx_dev
erdanergou 3 years ago
parent
commit
d0ec8e18a4
  1. 15
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  2. 244
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  3. 8
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java
  4. 26
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  5. 13
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java
  6. 18
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  7. 4
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml
  8. 2
      src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml
  9. 4
      src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java
  10. 4
      src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutMinRecordP.java
  11. 20
      src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java
  12. 7
      src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java
  13. 28
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  14. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java
  15. 101
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  16. 10
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java
  17. 10
      src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java
  18. 5
      src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java
  19. 4
      src/main/resources/templates/pages/application/application-out.html
  20. 13
      src/main/resources/templates/pages/application/application-out_min.html
  21. 13
      src/main/resources/templates/pages/application/application-transfer.html
  22. 7
      src/main/resources/templates/pages/application/form-step-look_back.html
  23. 52
      src/main/resources/templates/pages/material/material-out.html
  24. 2
      src/main/resources/templates/pages/material/selectDepositoryByCard.html
  25. 5
      src/main/resources/templates/pages/materialtype/materialType_view.html
  26. 2
      src/main/resources/templates/pages/scanQrCode/ScanQrCode.html
  27. 8
      src/main/resources/templates/pages/scanQrCode/scanQrCodeOut.html
  28. 18
      target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  29. 4
      target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml
  30. 2
      target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml
  31. 4
      target/classes/templates/pages/application/application-out.html
  32. 13
      target/classes/templates/pages/application/application-out_min.html
  33. 13
      target/classes/templates/pages/application/application-transfer.html
  34. 7
      target/classes/templates/pages/application/form-step-look_back.html
  35. 52
      target/classes/templates/pages/material/material-out.html
  36. 2
      target/classes/templates/pages/material/selectDepositoryByCard.html
  37. 5
      target/classes/templates/pages/materialtype/materialType_view.html
  38. 2
      target/classes/templates/pages/scanQrCode/ScanQrCode.html
  39. 8
      target/classes/templates/pages/scanQrCode/scanQrCodeOut.html

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

@ -175,6 +175,7 @@ public class DepositoryRecordController {
} }
// 入库申请 // 入库申请
@PostMapping("/applicationIn") @PostMapping("/applicationIn")
public RestResponse insertApplicationInRecord(@RequestBody Map<String,Object> map, HttpServletRequest request){ public RestResponse insertApplicationInRecord(@RequestBody Map<String,Object> map, HttpServletRequest request){
@ -373,6 +374,7 @@ public class DepositoryRecordController {
if(Integer.compare(applicationOutMinById.getDepositoryId(),depositoryId) == 0){ if(Integer.compare(applicationOutMinById.getDepositoryId(),depositoryId) == 0){
// 获取子订单对应主订单 // 获取子订单对应主订单
ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(applicationOutMinById.getParentId()); ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(applicationOutMinById.getParentId());
// 获取申请人 // 获取申请人
UserByPort userByPort = PageController.FindUserById(applicationOutRecordPById.getApplicantId()); UserByPort userByPort = PageController.FindUserById(applicationOutRecordPById.getApplicantId());
// 创建展示对象 // 创建展示对象
@ -381,6 +383,15 @@ public class DepositoryRecordController {
Material materialById = materialService.findMaterialById(applicationOutMinById.getMid()); Material materialById = materialService.findMaterialById(applicationOutMinById.getMid());
// 获取当前出库库位 // 获取当前出库库位
Place placeByDid = placeService.findPlaceById(applicationOutMinById.getPlaceId()); Place placeByDid = placeService.findPlaceById(applicationOutMinById.getPlaceId());
// 获取当前子订单处理人编号
Integer checkId = applicationOutMinById.getCheckId();
if(checkId != null){
// 如果该订单已经处理
// 获取处理人
UserByPort checker = PageController.FindUserById(checkId);
simpleApplicationOutMinRecordP.setCheckerName(checker.getName());
}
simpleApplicationOutMinRecordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getApplicantTime()))); simpleApplicationOutMinRecordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getApplicantTime())));
simpleApplicationOutMinRecordP.setApplyRemark(applicationOutRecordPById.getApplyRemark()); simpleApplicationOutMinRecordP.setApplyRemark(applicationOutRecordPById.getApplyRemark());
simpleApplicationOutMinRecordP.setDepositoryId(depositoryRecordById.getId()); simpleApplicationOutMinRecordP.setDepositoryId(depositoryRecordById.getId());
@ -638,7 +649,7 @@ public class DepositoryRecordController {
String type = (String) map.get("type"); String type = (String) map.get("type");
Integer success = 0; Integer success = 0;
if("in".equals(type)){ if("in".equals(type)){
success += depositoryRecordService.applicationIn(map); success += depositoryRecordService.applicationInPlace(map);
}else if("out".equals(type)){ }else if("out".equals(type)){
// 获取部门负责人 // 获取部门负责人
// UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); // UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken);
@ -720,7 +731,7 @@ public class DepositoryRecordController {
inRecord.put("quantity",quantity); inRecord.put("quantity",quantity);
inRecord.put("price",price); inRecord.put("price",price);
inRecord.put("applyRemark",applyRemark); inRecord.put("applyRemark",applyRemark);
success += depositoryRecordService.applicationIn(inRecord); success += depositoryRecordService.applicationInPlace(inRecord);
} }
}else if("out".equals(type)){ }else if("out".equals(type)){
Map<String,Object> mainRecord = new HashMap<>(); Map<String,Object> mainRecord = new HashMap<>();

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

@ -41,109 +41,155 @@ public class MaterialController {
PlaceService placeService; PlaceService placeService;
@Autowired @Autowired
private RedisTemplate<Object,Object> redisTemplate; private RedisTemplate<Object, Object> redisTemplate;
/** /**
* 根据物料进行查询 * 根据物料进行查询
* @param map *
* @param map
* @return * @return
*/ */
@GetMapping("/material") @GetMapping("/material")
public RestResponse findMaterial(@RequestParam Map<String,Object> map){ public RestResponse findMaterial(@RequestParam Map<String, Object> map) {
List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map); List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map);
return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200);
} }
/** /**
* 查询库存 * 查询库存
*
* @param map * @param map
* @param request * @param request
* @return * @return
*/ */
@GetMapping("/findInventory") @GetMapping("/findInventory")
public RestResponse findInventory(@RequestParam Map<String,Object> map,HttpServletRequest request){ public RestResponse findInventory(@RequestParam Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
// 查询当前用户管理的仓库
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId());
// 查询当前用户部门拥有的仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 定义仓库编号列表
List<Integer> didList = new ArrayList<>();
List<MaterialP> list = new ArrayList<>(); List<MaterialP> list = new ArrayList<>();
Integer total = 0; Integer total = 0;
for (int i = 0; i < depositoryByAdminorg.size(); i++) { Integer size = 10,page = 1; // 定义每页展示数量
map.put("depositoryId",depositoryByAdminorg.get(i).getId()); if(!(map.containsKey("depositoryId")||map.containsKey("code")||map.containsKey("mname"))){
for (int i = 0; i < depositoryByAdminorg.size(); i++) {
Integer did = depositoryByAdminorg.get(i).getId();
didList.add(did);
map.put("depositoryId", did);
List<MaterialP> inventory = materialService.findInventory(map);
list.addAll(inventory);
total += materialService.findInventoryCount(map);
}
if (map.containsKey("size")) {
size = ObjectFormatUtil.toInteger(map.get("size"));
}
for (RoleAndDepository roleAndDepository : depositoryAndRole) {
Integer depositoryId = roleAndDepository.getDepositoryId();
if(didList.contains(depositoryId)){
// 如果当前仓库编号存在
continue; // 跳过本次循环
}
map.put("depositoryId", depositoryId);
if(list.size() < size){
// 如果当前数目不足
if (map.containsKey("page")){
// 当前页
page=ObjectFormatUtil.toInteger(map.get("page"));
}
// 计算所有页数
Double pageAll = Math.ceil(total / size);
// 判断当前是在全新一页还是包含上述内容
if(size - list.size() != size){
// 如果当前不是崭新一页
map.put("begin",0);
}else{
map.put("begin",(page-1)*size-total);
}
map.put("size",size - list.size());
List<MaterialP> materialByDepository = materialService.findMaterialByDepository(map);
list.addAll(materialByDepository);
}
total += materialService.findMaterialByDepositoryCount(map);
}
}
else{
List<MaterialP> inventory = materialService.findInventory(map); List<MaterialP> inventory = materialService.findInventory(map);
list.addAll(inventory); list.addAll(inventory);
total += materialService.findInventoryCount(map); total += materialService.findInventoryCount(map);
} }
return new RestResponse(list, total, 200);
for (RoleAndDepository roleAndDepository : depositoryAndRole) {
List<MaterialP> materialByDepository = materialService.findMaterialByDepository(roleAndDepository.getDepositoryId());
list.addAll(materialByDepository);
total += list.size();
}
return new RestResponse(list,total,200);
} }
/** /**
* 添加一条物料记录 * 添加一条物料记录
*
* @param map * @param map
* @return * @return
*/ */
@PostMapping("/material_add") @PostMapping("/material_add")
public RestResponse materialAdd(@RequestBody Map<String,Object> map){ public RestResponse materialAdd(@RequestBody Map<String, Object> map) {
return CrudUtil.postHandle(materialService.insertMaterial(map), 1); return CrudUtil.postHandle(materialService.insertMaterial(map), 1);
} }
/** /**
* 执行删除操作将状态改为删除 * 执行删除操作将状态改为删除
*
* @param map * @param map
* @return * @return
*/ */
@PostMapping("/material_del") @PostMapping("/material_del")
public RestResponse deletematerial(@RequestBody Map<String,Object> map){ public RestResponse deletematerial(@RequestBody Map<String, Object> map) {
if (map.containsKey("id")){ if (map.containsKey("id")) {
Integer id= ObjectFormatUtil.toInteger(map.get("id")); Integer id = ObjectFormatUtil.toInteger(map.get("id"));
return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id),1); return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id), 1);
}else if (map.containsKey("ids")){ } else if (map.containsKey("ids")) {
List<Integer> ids=(List<Integer>) map.get("ids"); List<Integer> ids = (List<Integer>) map.get("ids");
return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids),ids.size()); return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids), ids.size());
}else { } else {
throw new MyException("所需请求参数缺失!"); throw new MyException("所需请求参数缺失!");
} }
} }
/** /**
* 修改物料信息 * 修改物料信息
*
* @param map * @param map
* @return * @return
*/ */
@PostMapping("/material_edit") @PostMapping("/material_edit")
public RestResponse updateDepository(@RequestBody Map<String,Object> map){ public RestResponse updateDepository(@RequestBody Map<String, Object> map) {
if(map.containsKey("state")){ if (map.containsKey("state")) {
map.put("state",1); map.put("state", 1);
}else{ } else {
map.put("state",2); map.put("state", 2);
} }
return CrudUtil.postHandle(materialService.updateMaterial(map),1); return CrudUtil.postHandle(materialService.updateMaterial(map), 1);
} }
@PostMapping("realDeleteMaterial") @PostMapping("realDeleteMaterial")
public RestResponse RealDeleteMaterial(@RequestBody Map<String,Object> map){ public RestResponse RealDeleteMaterial(@RequestBody Map<String, Object> map) {
if(map.containsKey("id")){ if (map.containsKey("id")) {
Integer id = (Integer) map.get("id"); Integer id = (Integer) map.get("id");
return CrudUtil.deleteHandle(materialService.deleteMaterialById(id),1); return CrudUtil.deleteHandle(materialService.deleteMaterialById(id), 1);
}else{ } else {
throw new MyException("所需请求参数缺失!"); throw new MyException("所需请求参数缺失!");
} }
} }
@PostMapping("/treeMenus") @PostMapping("/treeMenus")
public RestResponse InitTreeMenus(@RequestBody Map<String, Object> map, HttpServletRequest request){ public RestResponse InitTreeMenus(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String mname = (String) map.get("mname"); String mname = (String) map.get("mname");
String type = (String) map.get("type"); String type = (String) map.get("type");
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
Integer maindeparment = userToken.getMaindeparment(); Integer maindeparment = userToken.getMaindeparment();
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
if("1".equals(type)){ if ("1".equals(type)) {
list = materialService.InitTreeMenus(mname); list = materialService.InitTreeMenus(mname);
}else{ } else {
list = materialService.InitTreeMenus(mname, String.valueOf(maindeparment)); list = materialService.InitTreeMenus(mname, String.valueOf(maindeparment));
} }
@ -153,14 +199,15 @@ public class MaterialController {
/** /**
* 根据id获取物料 * 根据id获取物料
*
* @param mid * @param mid
* @return * @return
*/ */
@GetMapping("/findMatrialById") @GetMapping("/findMatrialById")
public RestResponse findMatrialById(@RequestParam(value = "mid",required = false) String mid,HttpServletRequest request){ public RestResponse findMatrialById(@RequestParam(value = "mid", required = false) String mid, HttpServletRequest request) {
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
if("".equals(mid)){ if ("".equals(mid)) {
return new RestResponse("",0,200); return new RestResponse("", 0, 200);
} }
Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(mid)); Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(mid));
List<PlaceP> placePList = new ArrayList<>(); List<PlaceP> placePList = new ArrayList<>();
@ -169,32 +216,33 @@ public class MaterialController {
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(ObjectFormatUtil.toInteger(mid), depositoryByAdminorg.get(i).getId()); List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(ObjectFormatUtil.toInteger(mid), depositoryByAdminorg.get(i).getId());
placePList.addAll(placeByMidAndDid); placePList.addAll(placeByMidAndDid);
} }
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("materialById",materialById); map.put("materialById", materialById);
map.put("placeList",placePList); map.put("placeList", placePList);
return new RestResponse(map,1,200); return new RestResponse(map, 1, 200);
} }
/** /**
* 根据物料编码获取物料 * 根据物料编码获取物料
*
* @param map * @param map
* @param request * @param request
* @return * @return
*/ */
@GetMapping("/findMatrialByCode") @GetMapping("/findMatrialByCode")
public RestResponse findMatrialByCode(@RequestParam Map<String,Object> map,HttpServletRequest request){ public RestResponse findMatrialByCode(@RequestParam Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
// 获取当前部门仓库 // 获取当前部门仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
Map<String,Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
String code = map.get("code").toString(); String code = map.get("code").toString();
String type = map.get("type").toString(); String type = map.get("type").toString();
if("".equals(code)){ if ("".equals(code)) {
return new RestResponse(null,1,200); return new RestResponse(null, 1, 200);
} }
param.put("code",code); param.put("code", code);
List<MaterialP> materialPByCondition = new ArrayList<>(); List<MaterialP> materialPByCondition = new ArrayList<>();
if("out".equals(type)) { if ("out".equals(type)) {
// 如果是出库 // 如果是出库
for (int i = 0; i < depositoryByAdminorg.size(); i++) { for (int i = 0; i < depositoryByAdminorg.size(); i++) {
param.put("depositoryId", depositoryByAdminorg.get(i).getId()); param.put("depositoryId", depositoryByAdminorg.get(i).getId());
@ -204,20 +252,20 @@ public class MaterialController {
break; break;
} }
} }
}else{ // 如果是入库 } else { // 如果是入库
materialPByCondition = materialService.findMaterialPByCondition(param); materialPByCondition = materialService.findMaterialPByCondition(param);
} }
MaterialP mp = null; MaterialP mp = null;
if(materialPByCondition.size() > 0){ if (materialPByCondition.size() > 0) {
mp = materialPByCondition.get(0); mp = materialPByCondition.get(0);
} }
return new RestResponse(mp,1,200); return new RestResponse(mp, 1, 200);
} }
@PostMapping("/findMaterialByCondition") @PostMapping("/findMaterialByCondition")
public RestResponse findMaterialByCondition(@RequestBody Map<String, Object> map){ public RestResponse findMaterialByCondition(@RequestBody Map<String, Object> map) {
List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map); List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map);
return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200);
} }
@ -226,82 +274,92 @@ public class MaterialController {
public RestResponse createQrCode(@RequestParam("mid") Integer mid) { public RestResponse createQrCode(@RequestParam("mid") Integer mid) {
Material materialById = materialService.findMaterialById(mid); Material materialById = materialService.findMaterialById(mid);
// 二维码保存信息 // 二维码保存信息
Map<String,Object> code = new HashMap<>(); Map<String, Object> code = new HashMap<>();
code.put("mname",materialById.getMname()); code.put("mname", materialById.getMname());
code.put("mcode",materialById.getCode()); code.put("mcode", materialById.getCode());
code.put("verison",materialById.getVersion()); code.put("verison", materialById.getVersion());
code.put("quantity",materialById.getQuantity()); code.put("quantity", materialById.getQuantity());
try { try {
return RestResponse.CreateQrCode(code); return RestResponse.CreateQrCode(code);
} catch (IOException e) { } catch (IOException e) {
return new RestResponse("err: "+e.getMessage(),678,new StatusInfo("失败","请联系开发人员")); return new RestResponse("err: " + e.getMessage(), 678, new StatusInfo("失败", "请联系开发人员"));
} }
} }
// 将数据暂存到redis中 // 将扫描结果数据暂存到redis中
@PostMapping("/temporaryValue") @PostMapping("/temporaryValue")
public RestResponse temporaryValue(@RequestBody Map<String,Object> map,HttpServletRequest request){ public RestResponse temporaryValue(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); UserByPort userByPort = (UserByPort) request.getAttribute("userToken");
ArrayList arrayList = (ArrayList) map.get("materialList"); ArrayList arrayList = (ArrayList) map.get("materialList");
ArrayList materailList = new ArrayList(); ArrayList materailList = new ArrayList();
for (int i = 0; i < arrayList.size(); i++) { for (int i = 0; i < arrayList.size(); i++) {
if(materailList.indexOf(arrayList.get(i)) == -1){ if (materailList.indexOf(arrayList.get(i)) == -1) {
materailList.add(arrayList.get(i)); materailList.add(arrayList.get(i));
} }
} }
map.put("materialList",materailList); map.put("materialList", materailList);
redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map));
return new RestResponse(); return new RestResponse();
} }
// 将入库物料数据暂存到redis中
@PostMapping("/temporaryValueForMaterial")
public RestResponse temporaryValueForMaterial(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userByPort = (UserByPort) request.getAttribute("userToken");
// 存入mids
redisTemplate.opsForValue().set("temporaryValueForMaterial" + userByPort.getNumber(), JSONObject.toJSONString(map));
return new RestResponse(200);
}
// 判断当前扫描的物料是否存在 // 判断当前扫描的物料是否存在
@GetMapping("/IsMaterialExist") @GetMapping("/IsMaterialExist")
public RestResponse IsMaterialExist(HttpServletRequest request){ public RestResponse IsMaterialExist(HttpServletRequest request) {
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); UserByPort userByPort = (UserByPort) request.getAttribute("userToken");
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString();
redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber());
JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue);
JSONObject depository = (JSONObject) jsonObject.get("depository"); // 扫描的仓库 JSONObject depository = (JSONObject) jsonObject.get("depository"); // 扫描的仓库
JSONObject place = (JSONObject) jsonObject.get("place"); // 扫描的库位 JSONObject place = (JSONObject) jsonObject.get("place"); // 扫描的库位
JSONArray materialList = (JSONArray) jsonObject.get("materialList"); // 扫描的物料集合 JSONArray materialList = (JSONArray) jsonObject.get("materialList"); // 扫描的物料集合
ArrayList<Object> newMaterialList = new ArrayList(); ArrayList<Object> newMaterialList = new ArrayList();
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
for (int i = 0; i < materialList.size(); i++) { for (int i = 0; i < materialList.size(); i++) {
JSONObject obj = (JSONObject) materialList.get(i);; JSONObject obj = (JSONObject) materialList.get(i);
map.put("code",obj.get("code")); ;
if(depository != null){ map.put("code", obj.get("code"));
map.put("depositoryId",depository.get("did")); if (depository != null) {
map.put("depositoryId", depository.get("did"));
} }
if(place != null){ if (place != null) {
map.put("depositoryId",place.get("depositoryId")); map.put("depositoryId", place.get("depositoryId"));
} }
List<MaterialP> inventory = materialService.findInventory(map); List<MaterialP> inventory = materialService.findInventory(map);
if(inventory.size() > 0){ if (inventory.size() > 0) {
MaterialP materialP = inventory.get(0); MaterialP materialP = inventory.get(0);
Map<String,Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
// 有该物料 // 有该物料
// 重新缓存到redis中 // 重新缓存到redis中
params.put("mid",materialP.getId()); params.put("mid", materialP.getId());
params.put("mname",materialP.getMname()); params.put("mname", materialP.getMname());
params.put("code",materialP.getCode()); params.put("code", materialP.getCode());
params.put("version",materialP.getVersion()); params.put("version", materialP.getVersion());
newMaterialList.add(params); newMaterialList.add(params);
}else{ } else {
// 没有该物料 // 没有该物料
continue; continue;
} }
} }
map.put("depository",depository); map.put("depository", depository);
map.put("place",place); map.put("place", place);
map.put("materialList",newMaterialList); map.put("materialList", newMaterialList);
redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map));
return new RestResponse(); return new RestResponse();
} }
//用于判断当前出库数量是否合适 //用于判断当前出库数量是否合适
@PostMapping("/MaterialQuantityIsTrue") @PostMapping("/MaterialQuantityIsTrue")
public RestResponse MaterialQuantityIsTrue(@RequestBody Map<String,Object> map,HttpServletRequest request){ public RestResponse MaterialQuantityIsTrue(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); UserByPort userByPort = (UserByPort) request.getAttribute("userToken");
// 当前出库数量 // 当前出库数量
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity"));
@ -311,12 +369,12 @@ public class MaterialController {
// 获取当前用户所在部门关闭的仓库及公共仓库 // 获取当前用户所在部门关闭的仓库及公共仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString());
for (int i = 0; i < depositoryByAdminorg.size(); i++) { for (int i = 0; i < depositoryByAdminorg.size(); i++) {
map.put("depositoryId",depositoryByAdminorg.get(i).getId()); map.put("depositoryId", depositoryByAdminorg.get(i).getId());
List<MaterialP> inventory = materialService.findInventory(map); List<MaterialP> inventory = materialService.findInventory(map);
if(inventory.size() > 0){ // 如果有库存 if (inventory.size() > 0) { // 如果有库存
for (int j = 0; j < inventory.size(); j++) { for (int j = 0; j < inventory.size(); j++) {
MaterialP materialP = inventory.get(j); MaterialP materialP = inventory.get(j);
if(quantity <= materialP.getQuantity()){ // 如果当前数量合适则跳出循环 if (quantity <= materialP.getQuantity()) { // 如果当前数量合适则跳出循环
flag = true; flag = true;
break; break;
} }

8
src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java

@ -50,13 +50,13 @@ public class MaterialTypeController {
/** /**
* 根据父级查询所有物料类型 * 根据父级查询所有物料类型
* @param parentId * @param param
* @return * @return
*/ */
@GetMapping("/allMaterialTypeByParent") @GetMapping("/allMaterialTypeByParent")
public RestResponse findMaterialTypeByNoParent(@RequestParam(value = "parentId",required = false) String parentId){ public RestResponse findMaterialTypeByNoParent(@RequestParam Map<String,Object> param){
Map<String,Object> param = new HashMap<>(); String parentId = (String) param.get("parentId");
if (parentId == null) { if ("".equals(parentId)) {
parentId = "0"; parentId = "0";
} }
param.put("parentId",parentId); param.put("parentId",parentId);

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

@ -1554,6 +1554,32 @@ public class PageController {
return mv; return mv;
} }
@GetMapping("/applicationInByMaterial")
public ModelAndView applicationInByMaterial(HttpServletRequest request){
ModelAndView mv = new ModelAndView();
UserByPort userByPort = (UserByPort) request.getAttribute("userToken");
String scanQrCodeValue = redisTemplate.opsForValue().get("temporaryValueForMaterial"+userByPort.getNumber()).toString();
redisTemplate.delete("temporaryValueForMaterial"+userByPort.getNumber());
JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue);
JSONArray mids = (JSONArray) jsonObject.get("mids");
List<Object> materialList = new ArrayList<>();
for (int i = 0; i < mids.size(); i++) {
Map<String,Object> param = new HashMap<>();
Integer o = ObjectFormatUtil.toInteger(mids.get(i));
Material materialById = materialService.findMaterialById(o);
param.put("mid",materialById.getId());
param.put("mname",materialById.getMname());
param.put("code",materialById.getCode());
param.put("version",materialById.getVersion());
String context = JSONObject.toJSONString(param);
materialList.add(context);
}
mv.addObject("materialList",materialList);
mv.setViewName("pages/application/application-in_scanQrCode");
return mv;
}
// 获取扫描结果并跳转到出库 // 获取扫描结果并跳转到出库
@GetMapping("/application_Out_scanQrCode") @GetMapping("/application_Out_scanQrCode")
public ModelAndView applicationOutScanQrCode(HttpServletRequest request){ public ModelAndView applicationOutScanQrCode(HttpServletRequest request){

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

@ -143,11 +143,20 @@ public interface MaterialMapper {
*/ */
List<Material> findMaterialByDepositorys(List<Integer> ids); List<Material> findMaterialByDepositorys(List<Integer> ids);
/** /**
* 根据仓库查询物品 * 根据仓库查询物品
* @param depositoryId * @param map
* @return
*/
List<Material> findMaterialByDepository(Map<String,Object> map);
/**
* 根据仓库查询物品数目
* @param map
* @return * @return
*/ */
List<Material> findMaterialByDepository(Integer depositoryId); Integer findMaterialByDepositoryCount(Map<String,Object> map);
} }

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

@ -90,7 +90,7 @@
<if test="typeId != null"> <if test="typeId != null">
AND m.type_id = #{typeId} AND m.type_id = #{typeId}
</if> </if>
and state != 3 and state != 3 and m.depository_id is null
</select> </select>
@ -209,12 +209,26 @@
#{item} #{item}
</foreach> </foreach>
</select> </select>
<!-- 根据仓库查询物料--> <!-- 根据仓库查询物料-->
<select id="findMaterialByDepository" resultMap="materialMap" parameterType="int"> <select id="findMaterialByDepository" resultMap="materialMap" parameterType="map">
SELECT SELECT
<include refid="allColumns" /> <include refid="allColumns" />
from material m from material m
where m.depository_id = #{depositoryId} where m.depository_id = #{depositoryId}
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<!-- 根据仓库查询物料总数-->
<select id="findMaterialByDepositoryCount" resultType="int" parameterType="map">
SELECT
COUNT(*)
from material m
where m.depository_id = #{depositoryId}
</select> </select>

4
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml

@ -65,7 +65,11 @@
<if test="parentId != null"> <if test="parentId != null">
and mt.parentId = #{parentId} and mt.parentId = #{parentId}
</if> </if>
and mt.state != 3 and mt.state != 4 and mt.state != 3 and mt.state != 4
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select> </select>
<!-- 根据主键查询数据 --> <!-- 根据主键查询数据 -->

2
src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml

@ -73,7 +73,7 @@
FROM transfer_record tr WHERE tr.id = #{id} FROM transfer_record tr WHERE tr.id = #{id}
</select> </select>
<!-- 新增信息 --> <!-- 新增信息 -->
<insert id="addTransferRecord"> <insert id="addTransferRecord" parameterType="map" useGeneratedKeys="true" keyProperty="id">
INSERT INTO transfer_record ( INSERT INTO transfer_record (
id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id
) VALUES ( ) VALUES (

4
src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java

@ -43,6 +43,10 @@ public class RestResponse implements Serializable {
public RestResponse() { public RestResponse() {
} }
public RestResponse(int status){
this.status = status;
}
public RestResponse(Object data) { public RestResponse(Object data) {
this.data = data; this.data = data;
} }

4
src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutMinRecordP.java

@ -66,6 +66,10 @@ public class SimpleApplicationOutMinRecordP {
* 子订单状态 * 子订单状态
*/ */
private String state; private String state;
/**
* 处理人姓名
*/
private String checkerName;
public SimpleApplicationOutMinRecordP(ApplicationOutRecordMin applicationOutRecordMin) { public SimpleApplicationOutMinRecordP(ApplicationOutRecordMin applicationOutRecordMin) {
this.id = applicationOutRecordMin.getId(); this.id = applicationOutRecordMin.getId();

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

@ -159,8 +159,24 @@ public interface MaterialService {
/** /**
* 根据仓库查询物品 * 根据仓库查询物品
* @param depositoryId * @param map
* @return * @return
*/ */
List<MaterialP> findMaterialByDepository(Integer depositoryId); List<MaterialP> findMaterialByDepository(Map<String,Object> map);
/**
* 根据仓库查询物品数目
* @param map
* @return
*/
Integer findMaterialByDepositoryCount(Map<String,Object> map);
/**
* 增加一条库存记录
*
* @param map 参数map
* @return 受影响的行数
*/
Integer insertMaterialForImport(Map<String, Object> map);
} }

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

@ -117,4 +117,11 @@ public interface PlaceService {
* @return * @return
*/ */
Integer findQuantityByMidAndPid(Integer mid,Integer pid); Integer findQuantityByMidAndPid(Integer mid,Integer pid);
/**
* 修改当前库位存放物料
* @param mp
* @return
*/
Integer updateMaterialAndPlace(MaterialAndPlace mp);
} }

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

@ -541,6 +541,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
map.put("quantity", record.getQuantity().toString()); map.put("quantity", record.getQuantity().toString());
map.put("applicantId", record.getApplicantId()); map.put("applicantId", record.getApplicantId());
map.put("transferId", record.getTransferId()); map.put("transferId", record.getTransferId());
map.put("recordId",record.getId()); // 出库订单编号
transferMaterial(map); transferMaterial(map);
} }
@ -579,20 +580,29 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if ("".equals(toPlaceId) || "0".equals(toPlaceId)) { if ("".equals(toPlaceId) || "0".equals(toPlaceId)) {
map.put("toPlaceId", 0); map.put("toPlaceId", 0);
} }
//清除主键
// depositoryRecordMapper.insertApplicationInRecord(map); // depositoryRecordMapper.insertApplicationInRecord(map);
transferRecordMapper.addTransferRecord(map); transferRecordMapper.addTransferRecord(map);// 插入转移记录
TransferRecord transferRecordByCondition = transferRecordMapper.findTransferRecordByCondition(map).get(0); Integer transferId = ObjectFormatUtil.toInteger(map.get("id"));
map.put("transferId", transferRecordByCondition.getId()); //清除主键
map.remove("id");
map.put("transferId", transferId);
// 获取当前转移物料仓库
Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(material.getDepositoryId()); Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(material.getDepositoryId());
Administration company = PageController.getCompany(userByPort.getMaindeparment()); Administration company = PageController.getCompany(userByPort.getMaindeparment());
// 生成出库订单
map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber", "out", company.getName())); map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber", "out", company.getName()));
String placeId = (String) map.get("placeId"); String placeId = map.get("fromPlaceId").toString();
if ("".equals(placeId)) { if ("".equals(placeId) || "0".equals(placeId)) {
map.put("placeId", 0); map.put("placeId", 0);
} }
//清除主键 // 插入主表
return depositoryRecordMapper.insertApplicationOutRecord(map); depositoryRecordMapper.insertApplicationOutRecord(map);
Object id = map.get("id");
// 清除主键
map.remove("id");
map.put("parentId",id);
return depositoryRecordMapper.insertApplicationOutRecordMin(map);
} }
/** /**
@ -712,8 +722,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
map.put("price", material.getPrice().toString()); map.put("price", material.getPrice().toString());
map.put("depositoryId", transferRecor.getToId()); map.put("depositoryId", transferRecor.getToId());
map.put("placeId", transferRecor.getToPlaceId()); map.put("placeId", transferRecor.getToPlaceId());
map.put("mid",mid);
applicationInPlace(map); applicationInPlace(map);
map.put("mid", materiallist.get(0).getId());
} else { } else {
// 如果不在该仓库,插入一条新记录 // 如果不在该仓库,插入一条新记录
Map<String, Object> insert = new HashMap<>(); Map<String, Object> insert = new HashMap<>();

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

@ -312,7 +312,7 @@ public class ExcelServiceImpl implements ExcelService {
} }
insert.put("depositoryId", depositoryId); insert.put("depositoryId", depositoryId);
insert.put("depositoryCode", excelVos.get(i).getDepositoryCode()); insert.put("depositoryCode", excelVos.get(i).getDepositoryCode());
materialService.insertMaterial(insert); materialService.insertMaterialForImport(insert);
// 将该物料同时放入默认库位中 // 将该物料同时放入默认库位中
Map<String,Object> param = new HashMap<>(); Map<String,Object> param = new HashMap<>();

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

@ -377,19 +377,79 @@ public class MaterialServiceImpl implements MaterialService {
} }
@Override @Override
public List<MaterialP> findMaterialByDepository(Integer depositoryId) { public List<MaterialP> findMaterialByDepository(Map<String,Object> map) {
List<Material> materialByDepository = materialMapper.findMaterialByDepository(depositoryId); Integer size = 10,page=1;
if (map.containsKey("size")){
size= ObjectFormatUtil.toInteger(map.get("size"));
map.put("size", size);
}
List<Material> materialByDepository = materialMapper.findMaterialByDepository(map);
return pack(materialByDepository); return pack(materialByDepository);
} }
@Override
public Integer findMaterialByDepositoryCount(Map<String, Object> map) {
return materialMapper.findMaterialByDepositoryCount(map);
}
/**
* 增加一条库存记录
*
* @param map 参数map
* @return 受影响的行数
*/
@Override
public Integer insertMaterialForImport(Map<String, Object> map) {
if(map.containsKey("quantity") && map.containsKey("price")) {
int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString()));
int price = (int) (Double.parseDouble(map.get("price").toString()) * 100);
map.put("price",price);
map.put("amounts",quantity * price);
}
Map<String,Object> params = new HashMap<>();
params.put("code",map.get("code"));
params.put("depositoryId",map.get("depositoryId"));
List<Material> inventory = materialMapper.findInventory(params);
if(inventory.size() >= 1){
// 如果该物料存在
Material material = inventory.get(0);
Double price = (Double.parseDouble(map.get("price").toString())) / 100;
int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString()));
// 获取当前入库金额
Double amounts = (quantity * price * 100);
// 获取平均价格
Double avgPrice = (material.getAmounts() + amounts) / (material.getQuantity() + quantity);
material.setPrice(avgPrice);
material.setAmounts(material.getAmounts() + amounts);
material.setQuantity(material.getQuantity() + quantity);
// 获取当前物料在当前仓库的库位
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, material.getId());
// 修改当前库位数目
placeAndMaterialByMidAndPid.setQuantity(placeAndMaterialByMidAndPid.getQuantity() + quantity);
placeService.updateMaterialAndPlace(placeAndMaterialByMidAndPid);
// 修改库位存放数量
Place placeById = placeService.findPlaceById(0);
placeById.setQuantity(placeById.getQuantity() + quantity);
placeService.UpdatePlace(placeById);
return materialMapper.updateMaterial(material);
}else {
return materialMapper.insertMaterial(map);
}
}
/** /**
* 构造树形选择框 * 构造树形选择框
* @return * @return
*/ */
public List<Object> InitTreeMenus(String mname,String adminorg) { public List<Object> InitTreeMenus(String mname,String adminorg) {
// 获取所有顶级类别
List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent();
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
for (int i = 0; i < materialTypeNoParent.size(); i++) { for (int i = 0; i < materialTypeNoParent.size(); i++) {
// 获取当前顶级类别
MaterialType mt = materialTypeNoParent.get(i); MaterialType mt = materialTypeNoParent.get(i);
List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,adminorg); List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,adminorg);
Map<String, Object> stringObjectMap = new HashMap<>(); Map<String, Object> stringObjectMap = new HashMap<>();
@ -445,9 +505,11 @@ public class MaterialServiceImpl implements MaterialService {
if(mt != null) { if(mt != null) {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("materialTypeId", mt.getId()); param.put("materialTypeId", mt.getId());
// 获取当前部门管理的仓库
List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(adminorg); List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(adminorg);
List<Integer> dids = new ArrayList<>(); List<Integer> dids = new ArrayList<>();
for (Depository depository : depositoryByAdminorg) { for (Depository depository : depositoryByAdminorg) {
// 将仓库编号存储到列表中
dids.add(depository.getId()); dids.add(depository.getId());
} }
List<Material> materialPByCondition = new ArrayList<>(); List<Material> materialPByCondition = new ArrayList<>();
@ -455,32 +517,42 @@ public class MaterialServiceImpl implements MaterialService {
if("".equals(adminorg)){ if("".equals(adminorg)){
materialByDepositorys = materialMapper.findMaterialByCondition(new HashMap<String, Object>()); materialByDepositorys = materialMapper.findMaterialByCondition(new HashMap<String, Object>());
}else{ }else{
// 获取当前仓库下的所有物料库存
materialByDepositorys = materialMapper.findMaterialByDepositorys(dids); materialByDepositorys = materialMapper.findMaterialByDepositorys(dids);
} }
for (int i = 0; i < materialByDepositorys.size(); i++) { for (int i = 0; i < materialByDepositorys.size(); i++) {
// 循环便利物料
if (Integer.compare(materialByDepositorys.get(i).getTypeId(), mt.getId()) == 0){ if (Integer.compare(materialByDepositorys.get(i).getTypeId(), mt.getId()) == 0){
// 如果该物料是当前类别下的物料
boolean flag = false; boolean flag = false;
for (int j = 0; j < materialPByCondition.size(); j++) { for (int j = 0; j < materialPByCondition.size(); j++) {
// 判断当前物料是否在最终结果中
if(materialByDepositorys.get(i).getCode().equals(materialPByCondition.get(j).getCode())){ if(materialByDepositorys.get(i).getCode().equals(materialPByCondition.get(j).getCode())){
flag = true; flag = true; // 设置标志位为true
continue; break; // 跳出本循环
} }
} }
if(flag){ if(flag){ // 如果当前物料存在
continue; continue;
} }
materialPByCondition.add(materialByDepositorys.get(i)); materialPByCondition.add(materialByDepositorys.get(i));
} }
} }
List<Object> result = new ArrayList<>(); List<Object> result = new ArrayList<>();
if("".equals(mname)) { if("".equals(mname)) { // 如果没有输入名称
for (Material material : materialPByCondition) { for (Material material : materialPByCondition) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
String version = material.getVersion(); String version = material.getVersion();
if(version == null){ if(version == null){
version = ""; version = "";
} }
map.put("title", material.getMname() + " 规格型号: "+version);
String title = material.getMname() + ",规格型号: "+version;
if(material.getDepositoryId() != null){
// 如果当前是库存
title += ",当前库存为:"+material.getQuantity();
}
map.put("title", title);
map.put("id", material.getId()); map.put("id", material.getId());
result.add(map); result.add(map);
} }
@ -492,7 +564,12 @@ public class MaterialServiceImpl implements MaterialService {
if(version == null){ if(version == null){
version = ""; version = "";
} }
map.put("title", material.getMname() + " 规格型号: "+version); String title = material.getMname() + ",规格型号: "+version;
if(material.getDepositoryId() != null){
// 如果当前是库存
title += ",当前库存为:"+material.getQuantity();
}
map.put("title", title);
map.put("id", material.getId()); map.put("id", material.getId());
result.add(map); result.add(map);
} }
@ -517,7 +594,7 @@ public class MaterialServiceImpl implements MaterialService {
return flag; return flag;
} }
// 根据id获取子类 // 根据类别id获取子类
public List<Object> findChildForMaterialTypeByParent(Integer id,String mname,String adminorg){ public List<Object> findChildForMaterialTypeByParent(Integer id,String mname,String adminorg){
Map<String,Object> param = new HashMap<>(); Map<String,Object> param = new HashMap<>();
List<Object> result = new ArrayList<>(); List<Object> result = new ArrayList<>();
@ -526,11 +603,14 @@ public class MaterialServiceImpl implements MaterialService {
// 获取当前父类的子类 // 获取当前父类的子类
List<MaterialType> materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param); List<MaterialType> materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param);
if(materialTypeByCondition.size() > 0){ if(materialTypeByCondition.size() > 0){
// 如果当前类别有子类
for (MaterialType mt : materialTypeByCondition) { for (MaterialType mt : materialTypeByCondition) {
// 递归直至到最底层子类
List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,adminorg); List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,adminorg);
Map<String, Object> stringObjectMap = null; Map<String, Object> stringObjectMap = null;
if(childForMaterialTypeByParent == null) { if(childForMaterialTypeByParent == null) {
List<Object> list = AddMaterialByType(mt,mname,adminorg); // 如果当前类别没有子类
List<Object> list = AddMaterialByType(mt,mname,adminorg); // 添加当前类别下的物料
stringObjectMap = InitTreeMenus(mt, list); stringObjectMap = InitTreeMenus(mt, list);
}else{ }else{
stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent); stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent);
@ -539,6 +619,7 @@ public class MaterialServiceImpl implements MaterialService {
} }
return result; return result;
}else{ }else{
// 没有则返回空
return null; return null;
} }
} }

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

@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage.service.impl;
import com.dreamchaser.depository_manage.entity.MaterialType; import com.dreamchaser.depository_manage.entity.MaterialType;
import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper;
import com.dreamchaser.depository_manage.service.MaterialTypeService; import com.dreamchaser.depository_manage.service.MaterialTypeService;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -52,6 +53,15 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
*/ */
@Override @Override
public List<MaterialType> findMaterialTypeByCondition(Map<String, Object> map) { public List<MaterialType> findMaterialTypeByCondition(Map<String, Object> map) {
Integer size = 10,page=1;
if (map.containsKey("size")){
size= ObjectFormatUtil.toInteger(map.get("size"));
map.put("size", size);
}
if (map.containsKey("page")){
page=ObjectFormatUtil.toInteger(map.get("page"));
map.put("begin",(page-1)*size);
}
return materialTypeMapper.findMaterialTypeByCondition(map); return materialTypeMapper.findMaterialTypeByCondition(map);
} }

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

@ -234,5 +234,15 @@ public class PlaceServiceImpl implements PlaceService {
return placeMapper.findQuantityByMidAndPid(map); return placeMapper.findQuantityByMidAndPid(map);
} }
/**
* 修改当前库位存放物料
* @param mp
* @return
*/
@Override
public Integer updateMaterialAndPlace(MaterialAndPlace mp) {
return placeMapper.updateMaterialAndPlace(mp);
}
} }

5
src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java

@ -1,10 +1,7 @@
package com.dreamchaser.depository_manage.utils; package com.dreamchaser.depository_manage.utils;
import java.util.concurrent.Callable; import java.util.concurrent.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
// 线程池工具类 // 线程池工具类
public class TaskCenterUtil { public class TaskCenterUtil {

4
src/main/resources/templates/pages/application/application-out.html

@ -400,7 +400,7 @@
var id = obj.id.split("quantity")[1]; var id = obj.id.split("quantity")[1];
var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码 var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码
if(mcode === "" || mcode ===undefined || mcode === null){ if(mcode === "" || mcode ===undefined || mcode === null){
layer.msg("请输入物料的正确编码!",{icon:1,time:500},function () { layer.msg("请输入物料的正确编码!",{icon:0,time:500},function () {
$("#quantity"+id).val("") $("#quantity"+id).val("")
}); });
}else{ }else{
@ -416,7 +416,7 @@
success:function (res) { success:function (res) {
var flag = res.data; var flag = res.data;
if(!flag){ // 如果当前数目不合适 if(!flag){ // 如果当前数目不合适
layer.msg("当前物料数量不足",{icon:1,time:500},function () { layer.msg("当前物料数量不足",{icon:0,time:500},function () {
$("#quantity"+id).val(""); $("#quantity"+id).val("");
// 获取对应元素 // 获取对应元素
var parent = obj.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode;

13
src/main/resources/templates/pages/application/application-out_min.html

@ -77,15 +77,24 @@
{field: 'applicantName', width: 150, title: '申请人'}, {field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applyRemark', width: 200, title: '备注'},
{field: 'state', width: 200, title: '状态'} {field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
]], ]],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done:function (res, curr, count) {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display','none');
var data = res.data;
if(data.length > 0){
if(data[0].state === "进行中"){
$("[data-field='id']").css('display','none');
}
}
} }
}); });

13
src/main/resources/templates/pages/application/application-transfer.html

@ -247,7 +247,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">所处库位:</label> <label class="layui-form-label">所处库位:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<select name=`+"placeId"+NewIdNumber +` id="place"></select> <select name=`+"placeId"+NewIdNumber +` id=`+"place"+NewIdNumber +`></select>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -265,6 +265,8 @@
lay-verify="required"/> lay-verify="required"/>
<input type="text" name=`+"depositoryId"+NewIdNumber+` class="layui-input" id="depositoryId" <input type="text" name=`+"depositoryId"+NewIdNumber+` class="layui-input" id="depositoryId"
style="display: none" lay-verify="required"/> style="display: none" lay-verify="required"/>
<input type="text" name=`+"placeId"+NewIdNumber+` class="layui-input" id="placeId"
style="display: none" lay-verify="required"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -279,7 +281,7 @@
// 获取当前高度 // 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]); var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
params.push(NewIdNumber) params.push(NewIdNumber)
$("#stepForm").css("height",height+430 +'px'); $("#stepForm").css("height",height+455 +'px');
$("#"+parentId).after(materialItem); $("#"+parentId).after(materialItem);
}; };
@ -292,7 +294,7 @@
// 获取祖父节点 // 获取祖父节点
var reparent = parent.parentNode; var reparent = parent.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]); var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height",height-430 +'px'); $("#stepForm").css("height",height-455 +'px');
params = remove(params,parentId); params = remove(params,parentId);
reparent.removeChild(parent); reparent.removeChild(parent);
}; };
@ -315,6 +317,7 @@
selectCode = function(obj){ selectCode = function(obj){
// 输入code // 输入code
var code = obj.value; var code = obj.value;
var id = obj.name.split("code")[1];
// 获取对应元素 // 获取对应元素
var parent = obj.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5]; var children = parent.childNodes[5];
@ -346,9 +349,9 @@
data:JSON.stringify(req), data:JSON.stringify(req),
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (res) { success:function (res) {
$('#place').empty(); $('#place'+id).empty();
$.each(res.data, function (index, item) { $.each(res.data, function (index, item) {
$('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 $('#place'+id).append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素
}); });
form.render(); form.render();
materialName.value = d.mname; materialName.value = d.mname;

7
src/main/resources/templates/pages/application/form-step-look_back.html

@ -99,13 +99,6 @@
</div> </div>
</div> </div>
<div class="layui-card-body" style="padding-top: 40px;">
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
<h3>说明</h3><br>
申请提交后,24小时内审核完毕
</div>
</div>
</div> </div>
</div> </div>

52
src/main/resources/templates/pages/material/material-out.html

@ -72,13 +72,6 @@
</div> </div>
</fieldset> </fieldset>
<div class="layui-form-item">
<label class="layui-form-label">二维码</label>
<div class="layui-input-inline">
<!-- <input type="text" th:value="${record.depository.getDname()}" name="dname" required lay-verify="required" autocomplete="off" class="layui-input" readonly="readonly">-->
<img src="" id="qrCode">
</div>
</div>
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
@ -89,6 +82,7 @@
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button>
</div> </div>
</script> </script>
@ -284,19 +278,46 @@
return false; return false;
} }
} }
else if(obj.event === 'createQrCode'){ else if(obj.event === 'applicationIn'){
// 入库申请
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req={};
req.mids=[];
// 获取所有选中的id
for (i=0,len=data.length;i<len;i++){
req.mids[i]=data[i].id;
}
$.ajax({ $.ajax({
url:"/material/createQrCode?mid=3", url:"/material/temporaryValueForMaterial",
type: 'post',
dataType: 'json', dataType: 'json',
type: 'get',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (data) { data: JSON.stringify(req),
if(data.status != 200){ beforeSend: function () {
layer.msg(data.statusInfo.messgae) this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}else{ },
$("#qrCode").attr("src",data.data); success:function (d) {
layer.close(this.layerIndex);
if(d.status == 200){
layer.open({
type: 2,
title: '入库',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move: '.layui-layer-title',
fixed: false,
content: '/applicationInByMaterial',
end:function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
})
} }
} }
}) })
} }
}); });
@ -312,6 +333,7 @@
exts:'xls|xlsx|csv', exts:'xls|xlsx|csv',
done:function(res){ done:function(res){
layer.closeAll('loading'); //关闭loading layer.closeAll('loading'); //关闭loading
//如果上传成功 //如果上传成功
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"

2
src/main/resources/templates/pages/material/selectDepositoryByCard.html

@ -64,7 +64,7 @@
depositoryName.value = d.data.dname +"-"+ obj.data.title; depositoryName.value = d.data.dname +"-"+ obj.data.title;
} }
}); });
console.log(did)
depositoryId.value = did[0]; depositoryId.value = did[0];
placeId.value = did[1]; placeId.value = did[1];
} }

5
src/main/resources/templates/pages/materialtype/materialType_view.html

@ -82,7 +82,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId='+parentId, url: '/materialType/allMaterialTypeByParent',
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -96,7 +96,8 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type:"0",
parentId:parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code

2
src/main/resources/templates/pages/scanQrCode/ScanQrCode.html

@ -279,7 +279,7 @@
}, },
// 弹出入库|出库选择框 // 弹出入库|出库选择框
chooseInOrOut(){ chooseInOrOut(){
layer.confirm("请选择入库|出库", { layer.confirm("是否入库", {
btn: ["入库"] btn: ["入库"]
}, },
function () { // 选择入库 function () { // 选择入库

8
src/main/resources/templates/pages/scanQrCode/scanQrCodeOut.html

@ -283,7 +283,7 @@
}, },
// 弹出出库确定弹出框 // 弹出出库确定弹出框
isOutTrue(req){ isOutTrue(req){
layer.confirm("确定出库?", { var confirmIndex = layer.confirm("确定出库?", {
btn: ["确定", "取消"] btn: ["确定", "取消"]
}, function () { // 如果确定出库 }, function () { // 如果确定出库
@ -302,9 +302,10 @@
} }
, function () { , function () {
layer.close(layer.index); layer.close(layer.index);
}); var index=parent.layer.getFrameIndex(window.name);
layer.close(layer.index) parent.layer.close(index);
});
} else { } else {
// 如果出库失败 // 如果出库失败
layer.msg(res.statusInfo.message+",请重试"); layer.msg(res.statusInfo.message+",请重试");
@ -315,6 +316,7 @@
vue.turnCameraOn(); vue.turnCameraOn();
return return
} }
} }
}) })
}, function () { }, function () {

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

@ -90,7 +90,7 @@
<if test="typeId != null"> <if test="typeId != null">
AND m.type_id = #{typeId} AND m.type_id = #{typeId}
</if> </if>
and state != 3 and state != 3 and m.depository_id is null
</select> </select>
@ -209,12 +209,26 @@
#{item} #{item}
</foreach> </foreach>
</select> </select>
<!-- 根据仓库查询物料--> <!-- 根据仓库查询物料-->
<select id="findMaterialByDepository" resultMap="materialMap" parameterType="int"> <select id="findMaterialByDepository" resultMap="materialMap" parameterType="map">
SELECT SELECT
<include refid="allColumns" /> <include refid="allColumns" />
from material m from material m
where m.depository_id = #{depositoryId} where m.depository_id = #{depositoryId}
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<!-- 根据仓库查询物料总数-->
<select id="findMaterialByDepositoryCount" resultType="int" parameterType="map">
SELECT
COUNT(*)
from material m
where m.depository_id = #{depositoryId}
</select> </select>

4
target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml

@ -65,7 +65,11 @@
<if test="parentId != null"> <if test="parentId != null">
and mt.parentId = #{parentId} and mt.parentId = #{parentId}
</if> </if>
and mt.state != 3 and mt.state != 4 and mt.state != 3 and mt.state != 4
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select> </select>
<!-- 根据主键查询数据 --> <!-- 根据主键查询数据 -->

2
target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml

@ -73,7 +73,7 @@
FROM transfer_record tr WHERE tr.id = #{id} FROM transfer_record tr WHERE tr.id = #{id}
</select> </select>
<!-- 新增信息 --> <!-- 新增信息 -->
<insert id="addTransferRecord"> <insert id="addTransferRecord" parameterType="map" useGeneratedKeys="true" keyProperty="id">
INSERT INTO transfer_record ( INSERT INTO transfer_record (
id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id
) VALUES ( ) VALUES (

4
target/classes/templates/pages/application/application-out.html

@ -400,7 +400,7 @@
var id = obj.id.split("quantity")[1]; var id = obj.id.split("quantity")[1];
var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码 var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码
if(mcode === "" || mcode ===undefined || mcode === null){ if(mcode === "" || mcode ===undefined || mcode === null){
layer.msg("请输入物料的正确编码!",{icon:1,time:500},function () { layer.msg("请输入物料的正确编码!",{icon:0,time:500},function () {
$("#quantity"+id).val("") $("#quantity"+id).val("")
}); });
}else{ }else{
@ -416,7 +416,7 @@
success:function (res) { success:function (res) {
var flag = res.data; var flag = res.data;
if(!flag){ // 如果当前数目不合适 if(!flag){ // 如果当前数目不合适
layer.msg("当前物料数量不足",{icon:1,time:500},function () { layer.msg("当前物料数量不足",{icon:0,time:500},function () {
$("#quantity"+id).val(""); $("#quantity"+id).val("");
// 获取对应元素 // 获取对应元素
var parent = obj.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode;

13
target/classes/templates/pages/application/application-out_min.html

@ -77,15 +77,24 @@
{field: 'applicantName', width: 150, title: '申请人'}, {field: 'applicantName', width: 150, title: '申请人'},
{field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true},
{field: 'applyRemark', width: 200, title: '备注'}, {field: 'applyRemark', width: 200, title: '备注'},
{field: 'state', width: 200, title: '状态'} {field: 'state', width: 200, title: '状态'},
{field: 'checkerName', width: 200, title: '处理人'}
]], ]],
limits: [10, 15, 20, 25, 50], limits: [10, 15, 20, 25, 50],
limit: 10, limit: 10,
page: true, page: true,
skin: 'line', skin: 'line',
done:function () { done:function (res, curr, count) {
$("[data-field='id']").css('display','none'); $("[data-field='id']").css('display','none');
var data = res.data;
if(data.length > 0){
if(data[0].state === "进行中"){
$("[data-field='id']").css('display','none');
}
}
} }
}); });

13
target/classes/templates/pages/application/application-transfer.html

@ -247,7 +247,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">所处库位:</label> <label class="layui-form-label">所处库位:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<select name=`+"placeId"+NewIdNumber +` id="place"></select> <select name=`+"placeId"+NewIdNumber +` id=`+"place"+NewIdNumber +`></select>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -265,6 +265,8 @@
lay-verify="required"/> lay-verify="required"/>
<input type="text" name=`+"depositoryId"+NewIdNumber+` class="layui-input" id="depositoryId" <input type="text" name=`+"depositoryId"+NewIdNumber+` class="layui-input" id="depositoryId"
style="display: none" lay-verify="required"/> style="display: none" lay-verify="required"/>
<input type="text" name=`+"placeId"+NewIdNumber+` class="layui-input" id="placeId"
style="display: none" lay-verify="required"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -279,7 +281,7 @@
// 获取当前高度 // 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]); var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
params.push(NewIdNumber) params.push(NewIdNumber)
$("#stepForm").css("height",height+430 +'px'); $("#stepForm").css("height",height+455 +'px');
$("#"+parentId).after(materialItem); $("#"+parentId).after(materialItem);
}; };
@ -292,7 +294,7 @@
// 获取祖父节点 // 获取祖父节点
var reparent = parent.parentNode; var reparent = parent.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]); var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height",height-430 +'px'); $("#stepForm").css("height",height-455 +'px');
params = remove(params,parentId); params = remove(params,parentId);
reparent.removeChild(parent); reparent.removeChild(parent);
}; };
@ -315,6 +317,7 @@
selectCode = function(obj){ selectCode = function(obj){
// 输入code // 输入code
var code = obj.value; var code = obj.value;
var id = obj.name.split("code")[1];
// 获取对应元素 // 获取对应元素
var parent = obj.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5]; var children = parent.childNodes[5];
@ -346,9 +349,9 @@
data:JSON.stringify(req), data:JSON.stringify(req),
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (res) { success:function (res) {
$('#place').empty(); $('#place'+id).empty();
$.each(res.data, function (index, item) { $.each(res.data, function (index, item) {
$('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 $('#place'+id).append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素
}); });
form.render(); form.render();
materialName.value = d.mname; materialName.value = d.mname;

7
target/classes/templates/pages/application/form-step-look_back.html

@ -99,13 +99,6 @@
</div> </div>
</div> </div>
<div class="layui-card-body" style="padding-top: 40px;">
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
<h3>说明</h3><br>
申请提交后,24小时内审核完毕
</div>
</div>
</div> </div>
</div> </div>

52
target/classes/templates/pages/material/material-out.html

@ -72,13 +72,6 @@
</div> </div>
</fieldset> </fieldset>
<div class="layui-form-item">
<label class="layui-form-label">二维码</label>
<div class="layui-input-inline">
<!-- <input type="text" th:value="${record.depository.getDname()}" name="dname" required lay-verify="required" autocomplete="off" class="layui-input" readonly="readonly">-->
<img src="" id="qrCode">
</div>
</div>
<!-- 状态展示--> <!-- 状态展示-->
<script type="text/html" id="switchTpl"> <script type="text/html" id="switchTpl">
@ -89,6 +82,7 @@
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button> <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationIn"> 入库申请</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" id="u_fileUpload" lay-event="import">导入数据</button>
</div> </div>
</script> </script>
@ -284,19 +278,46 @@
return false; return false;
} }
} }
else if(obj.event === 'createQrCode'){ else if(obj.event === 'applicationIn'){
// 入库申请
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req={};
req.mids=[];
// 获取所有选中的id
for (i=0,len=data.length;i<len;i++){
req.mids[i]=data[i].id;
}
$.ajax({ $.ajax({
url:"/material/createQrCode?mid=3", url:"/material/temporaryValueForMaterial",
type: 'post',
dataType: 'json', dataType: 'json',
type: 'get',
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success:function (data) { data: JSON.stringify(req),
if(data.status != 200){ beforeSend: function () {
layer.msg(data.statusInfo.messgae) this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
}else{ },
$("#qrCode").attr("src",data.data); success:function (d) {
layer.close(this.layerIndex);
if(d.status == 200){
layer.open({
type: 2,
title: '入库',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move: '.layui-layer-title',
fixed: false,
content: '/applicationInByMaterial',
end:function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
})
} }
} }
}) })
} }
}); });
@ -312,6 +333,7 @@
exts:'xls|xlsx|csv', exts:'xls|xlsx|csv',
done:function(res){ done:function(res){
layer.closeAll('loading'); //关闭loading layer.closeAll('loading'); //关闭loading
//如果上传成功 //如果上传成功
for (let i = 0; i < res.data.errMsg.length; i++) { for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>" var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"

2
target/classes/templates/pages/material/selectDepositoryByCard.html

@ -64,7 +64,7 @@
depositoryName.value = d.data.dname +"-"+ obj.data.title; depositoryName.value = d.data.dname +"-"+ obj.data.title;
} }
}); });
console.log(did)
depositoryId.value = did[0]; depositoryId.value = did[0];
placeId.value = did[1]; placeId.value = did[1];
} }

5
target/classes/templates/pages/materialtype/materialType_view.html

@ -82,7 +82,7 @@
var parentId = document.getElementById("parentId").value; var parentId = document.getElementById("parentId").value;
table.render({ table.render({
elem: "#currentTableId", elem: "#currentTableId",
url: '/materialType/allMaterialTypeByParent?parentId='+parentId, url: '/materialType/allMaterialTypeByParent',
parseData: function (res) { //res 即为原始返回的数据 parseData: function (res) { //res 即为原始返回的数据
return { return {
"status": res.status, //解析接口状态 "status": res.status, //解析接口状态
@ -96,7 +96,8 @@
limitName: 'size' //每页数据量的参数名,默认:limit limitName: 'size' //每页数据量的参数名,默认:limit
}, },
where: { where: {
type:"0" type:"0",
parentId:parentId
}, },
response: { response: {
statusName: 'status' //规定数据状态的字段名称,默认:code statusName: 'status' //规定数据状态的字段名称,默认:code

2
target/classes/templates/pages/scanQrCode/ScanQrCode.html

@ -279,7 +279,7 @@
}, },
// 弹出入库|出库选择框 // 弹出入库|出库选择框
chooseInOrOut(){ chooseInOrOut(){
layer.confirm("请选择入库|出库", { layer.confirm("是否入库", {
btn: ["入库"] btn: ["入库"]
}, },
function () { // 选择入库 function () { // 选择入库

8
target/classes/templates/pages/scanQrCode/scanQrCodeOut.html

@ -283,7 +283,7 @@
}, },
// 弹出出库确定弹出框 // 弹出出库确定弹出框
isOutTrue(req){ isOutTrue(req){
layer.confirm("确定出库?", { var confirmIndex = layer.confirm("确定出库?", {
btn: ["确定", "取消"] btn: ["确定", "取消"]
}, function () { // 如果确定出库 }, function () { // 如果确定出库
@ -302,9 +302,10 @@
} }
, function () { , function () {
layer.close(layer.index); layer.close(layer.index);
}); var index=parent.layer.getFrameIndex(window.name);
layer.close(layer.index) parent.layer.close(index);
});
} else { } else {
// 如果出库失败 // 如果出库失败
layer.msg(res.statusInfo.message+",请重试"); layer.msg(res.statusInfo.message+",请重试");
@ -315,6 +316,7 @@
vue.turnCameraOn(); vue.turnCameraOn();
return return
} }
} }
}) })
}, function () { }, function () {

Loading…
Cancel
Save