上传文件至 src/main/java/co/jp/mamol/myapp/controller

This commit is contained in:
2025-05-07 16:51:53 +09:00
parent 975376c093
commit 2517682f8d
5 changed files with 766 additions and 0 deletions

View File

@ -0,0 +1,140 @@
package co.jp.mamol.myapp.controller;
import co.jp.mamol.myapp.common.ApiResponse;
import co.jp.mamol.myapp.form.BuyApprovalForm;
import co.jp.mamol.myapp.model.SizaiModel;
import co.jp.mamol.myapp.model.UserModel;
import co.jp.mamol.myapp.service.BuyApprovalService;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
@RestController
@RequestMapping("/api")
public class BuyApprovalController {
private final BuyApprovalService buyApprovalService;
@Autowired
public BuyApprovalController(BuyApprovalService buyApprovalService) {
this.buyApprovalService = buyApprovalService;
}
private UserModel getLoginUser(HttpSession session) {
return (UserModel) session.getAttribute("loginInfo");
}
// M0004,BL2001,DA2001
@GetMapping("/approvalList/init")
public ResponseEntity<ApiResponse<BuyApprovalForm>> init(HttpSession session){
UserModel user = getLoginUser(session);
if (user == null || !"2".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
LocalDate endDate = LocalDate.now();
LocalDate startDate = endDate.minusMonths(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startDateStr = startDate.format(formatter);
String endDateStr = endDate.format(formatter);
List<SizaiModel> sizaiList = buyApprovalService.getDeptRequestList(startDateStr, endDateStr, user.getDepid());
BuyApprovalForm buyApprovalForm = new BuyApprovalForm();
if (sizaiList == null || sizaiList.isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("指定期間の購入依頼が登録されていません"));
} else {
buyApprovalForm.setSizaiList(sizaiList);
}
buyApprovalForm.setStartDate(startDateStr);
buyApprovalForm.setEndDate(endDateStr);
return ResponseEntity.ok(ApiResponse.success(buyApprovalForm));
}
// M0004,BL2001,DA2001
@PostMapping("/approvalList/search")
public ResponseEntity<ApiResponse<BuyApprovalForm>> search(@RequestBody BuyApprovalForm buyApprovalForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"2".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
List<SizaiModel> sizaiList = buyApprovalService.getDeptRequestList(buyApprovalForm.getStartDate(), buyApprovalForm.getEndDate(), user.getDepid());
if (sizaiList == null || sizaiList.isEmpty()) {
ResponseEntity.badRequest().body(ApiResponse.fail("指定期間の購入依頼が登録されていません"));
} else {
buyApprovalForm.setSizaiList(sizaiList);
}
return ResponseEntity.ok(ApiResponse.success(buyApprovalForm));
}
// M0004,BL2003,DA2003
@PostMapping("/approvalList/approval")
public ResponseEntity<ApiResponse<BuyApprovalForm>> approval(@RequestBody BuyApprovalForm buyApprovalForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"2".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
boolean approval = buyApprovalService.approval(buyApprovalForm.getTargeId());
if (approval) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startDateStr = LocalDate.now().minusMonths(1).format(formatter);
String endDateStr = LocalDate.now().format(formatter);
List<SizaiModel> sizaiList = buyApprovalService.getDeptRequestList(startDateStr, endDateStr, user.getDepid());
buyApprovalForm.setSizaiList(sizaiList);
return ResponseEntity.ok(ApiResponse.success(buyApprovalForm));
} else {
return ResponseEntity.badRequest().body(ApiResponse.fail("承認できませんでした。"));
}
}
// M0004,BL2004,DA2004
@PostMapping("/approvalList/reject")
public ResponseEntity<ApiResponse<BuyApprovalForm>> reject(@RequestBody BuyApprovalForm buyApprovalForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"2".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
boolean reject = buyApprovalService.reject(buyApprovalForm.getTargeId());
if (reject) {
String startDateStr = buyApprovalForm.getStartDate();
String endDateStr = buyApprovalForm.getEndDate();
if (startDateStr == null || endDateStr == null) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
startDateStr = LocalDate.now().minusMonths(1).format(formatter);
endDateStr = LocalDate.now().format(formatter);
}
List<SizaiModel> sizaiList = buyApprovalService.getDeptRequestList(startDateStr, endDateStr, user.getDepid());
buyApprovalForm.setSizaiList(sizaiList);
return ResponseEntity.ok(ApiResponse.success(buyApprovalForm));
} else {
return ResponseEntity.badRequest().body(ApiResponse.fail("却下できませんでした。"));
}
}
// M0004,BL2002,DA2002
@GetMapping("/approvalDetail/init")
public ResponseEntity<ApiResponse<BuyApprovalForm>> detail(@RequestParam("targetId") int targetId,HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"2".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
BuyApprovalForm buyApprovalForm = new BuyApprovalForm();
buyApprovalForm.setTargeId(targetId);
buyApprovalForm.setSizai(buyApprovalService.getRequest(targetId));
return ResponseEntity.ok(ApiResponse.success(buyApprovalForm));
}
}

View File

@ -0,0 +1,197 @@
package co.jp.mamol.myapp.controller;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Optional;
import co.jp.mamol.myapp.common.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import co.jp.mamol.myapp.model.CategoryModel;
import co.jp.mamol.myapp.model.SizaiModel;
import co.jp.mamol.myapp.model.UserModel;
import co.jp.mamol.myapp.form.BuyRequestForm;
import co.jp.mamol.myapp.service.BuyRequestService;
import jakarta.servlet.http.HttpSession;
@RestController
@RequestMapping("/api")
public class BuyRequestController {
private final BuyRequestService buyRequestService;
@Autowired
public BuyRequestController(BuyRequestService buyRequestService) {
this.buyRequestService = buyRequestService;
}
private UserModel getLoginUser(HttpSession session) {
return (UserModel) session.getAttribute("loginInfo");
}
// M0002,BL1003,DA1003
@GetMapping("/requestList/init")
public ResponseEntity<ApiResponse<BuyRequestForm>> init(HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
return ResponseEntity.status(403).body(ApiResponse.fail("ユーザー情報は取らなかったですので、もう一度ログインしてください。"));
}
LocalDate endDate = LocalDate.now();
LocalDate startDate = endDate.minusMonths(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startDateStr = startDate.format(formatter);
String endDateStr = endDate.format(formatter);
List<SizaiModel> sizaiList = buyRequestService.getUserRequsetList(startDateStr, endDateStr, user.getId());
BuyRequestForm buyRequestForm = new BuyRequestForm();
if (sizaiList == null || sizaiList.isEmpty()) {
ResponseEntity.badRequest().body(ApiResponse.fail("指定期間の購入依頼が登録されていません"));
} else {
buyRequestForm.setSizaiList(sizaiList);
}
buyRequestForm.setStartDate(startDateStr);
buyRequestForm.setEndDate(endDateStr);
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
// M0002,BL1003,DA1003
@PostMapping("/requestList/search")
public ResponseEntity<ApiResponse<BuyRequestForm>> search(@RequestBody BuyRequestForm buyRequestForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
return ResponseEntity.status(403).body(ApiResponse.fail("ユーザー情報は取らなかったですので、もう一度ログインしてください。"));
}
List<SizaiModel> sizaiList = buyRequestService.getUserRequsetList(buyRequestForm.getStartDate(), buyRequestForm.getEndDate(), user.getId());
if (sizaiList == null || sizaiList.isEmpty()) {
ResponseEntity.badRequest().body(ApiResponse.fail("指定期間の購入依頼が登録されていません"));
} else {
buyRequestForm.setSizaiList(sizaiList);
}
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
// M0002,BL1006,DA1006
@PostMapping("/requestList/delete")
public ResponseEntity<ApiResponse<BuyRequestForm>> delete(@RequestBody BuyRequestForm buyRequestForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
return ResponseEntity.status(403).body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
buyRequestService.deleteById(buyRequestForm.getDeleteById());
String startDateStr = buyRequestForm.getStartDate();
String endDateStr = buyRequestForm.getEndDate();
if (startDateStr == null || endDateStr == null) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
startDateStr = LocalDate.now().minusMonths(1).format(formatter);
endDateStr = LocalDate.now().format(formatter);
}
List<SizaiModel> sizaiList = buyRequestService.getUserRequsetList(startDateStr, endDateStr, user.getId());
buyRequestForm.setSizaiList(sizaiList);
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
// M0001,BL1002,DA1002
@GetMapping("/requestRegist/init")
public ResponseEntity<ApiResponse<BuyRequestForm>> registInit(HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
return ResponseEntity.status(403).body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
List<CategoryModel> categoryList = buyRequestService.getCategory();
BuyRequestForm buyRequestForm = new BuyRequestForm();
if (categoryList == null || categoryList.isEmpty()) {
ResponseEntity.badRequest().body(ApiResponse.fail("申し訳ございません。今操作出来ません。"));
} else {
buyRequestForm.setCategoryModelList(categoryList);
}
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
// M0001,BL1002,DA1002
@PostMapping("/requestRegist/regist")
public ResponseEntity<ApiResponse<BuyRequestForm>> regist(@RequestBody BuyRequestForm buyRequestForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
ResponseEntity.status(403).body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
SizaiModel addSizai = buyRequestForm.getSizai();
if (addSizai.getName() == null || addSizai.getName().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("資材名を入力してください。"));
}
if (addSizai.getNum() == 0) {
return ResponseEntity.badRequest().body(ApiResponse.fail("数量を入力してください。"));
}else if (addSizai.getNum() < 0) {
return ResponseEntity.badRequest().body(ApiResponse.fail("数量はマイナスになりません。"));
}
addSizai.setRequest_user_id(user.getId());
addSizai.setRequest_dept_id(user.getDepid());
buyRequestService.requestRegist(addSizai);
buyRequestForm.setCategoryModelList(buyRequestService.getCategory());
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
// M0003,BL1005,DA1005
@GetMapping("/requestDetail/init")
public ResponseEntity<ApiResponse<BuyRequestForm>> detailInit(@RequestParam("targetId") int targetId, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
return ResponseEntity.status(403).body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
BuyRequestForm buyRequestForm = new BuyRequestForm();
SizaiModel sizaiDetail = buyRequestService.getRequest(targetId);
session.setAttribute("sizaiId", Optional.of(sizaiDetail.getId())); // 设置 session 数据
buyRequestForm.setSizai(sizaiDetail);
buyRequestForm.setCategoryModelList(buyRequestService.getCategory());
if ("1".equals(sizaiDetail.getStatus()) || "3".equals(sizaiDetail.getStatus())) {
buyRequestForm.setModifyFlag(true);
} else {
buyRequestForm.setModifyFlag(false);
ResponseEntity.badRequest().body(ApiResponse.fail("承認済の依頼を変更できません。"));
}
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
}
// M0003,BL1005,DA1005
@PostMapping("/requestDetail/modify")
public ResponseEntity<ApiResponse<BuyRequestForm>> modify(@RequestBody BuyRequestForm buyRequestForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"1".equals(user.getRole_class())) {
return ResponseEntity.status(403).body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
int sizaiId = buyRequestForm.getSizai().getId();
SizaiModel sizai = buyRequestForm.getSizai();
sizai.setId(sizaiId);
boolean modified = buyRequestService.modifyRequest(sizai);
if (modified) {
buyRequestForm.setSizai(buyRequestService.getRequest(sizaiId));
buyRequestForm.setCategoryModelList(buyRequestService.getCategory());
buyRequestForm.setModifyFlag(true);
return ResponseEntity.ok(ApiResponse.success(buyRequestForm));
} else {
return ResponseEntity.ok(ApiResponse.fail("変更できませんでした。"));
}
}
}

View File

@ -0,0 +1,83 @@
package co.jp.mamol.myapp.controller;
import co.jp.mamol.myapp.common.ApiResponse;
import co.jp.mamol.myapp.model.UserModel;
import co.jp.mamol.myapp.form.LoginForm;
import co.jp.mamol.myapp.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class LoginController {
@Autowired
private LoginService loginService;
@PostMapping("/login")
public ResponseEntity<ApiResponse<Map<String, Object>>> login(@RequestBody LoginForm loginForm, HttpServletRequest request) {
HttpSession session = request.getSession();
if (loginForm.getId() == null || loginForm.getId().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.<Map<String, Object>>fail("ユーザーIDを入力してください。"));
} else if (loginForm.getPassword() == null || loginForm.getPassword().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.<Map<String, Object>>fail("パスワードを入力してください。"));
}
UserModel userModel = loginService.findUser(loginForm.getId());
if (userModel == null || !userModel.getPassword().equals(loginForm.getPassword())) {
return ResponseEntity.badRequest().body(ApiResponse.<Map<String, Object>>fail("パスワードまたはユーザーIDが間違っています。"));
}
session.setAttribute("loginInfo", userModel);
String redirectUrl = switch (userModel.getRole_class()) {
case "1" -> "/request";
case "2" -> "/approval";
case "3" -> "/order";
case "4" -> "/inStore";
case "5" -> "/systemAdmin";
default -> "/error";
};
Map<String, Object> result = new HashMap<>();
result.put("redirect", redirectUrl);
result.put("user", userModel);
return ResponseEntity.ok(ApiResponse.success(result));
}
@GetMapping("/logout")
public ResponseEntity<ApiResponse<Void>> logout(HttpServletRequest request) {
HttpSession session = request.getSession();
session.invalidate();
return ResponseEntity.ok(ApiResponse.success(null));
}
@GetMapping("/me")
public ResponseEntity<ApiResponse<UserModel>> getCurrentUser(HttpServletRequest request) {
HttpSession session = request.getSession(false);
String accept = request.getHeader("Accept");
if (accept == null || !accept.contains("application/json")) {
return ResponseEntity.status(403).body(ApiResponse.fail("許可されていません"));
}
if (session == null) {
return ResponseEntity.status(401).body(ApiResponse.fail("セッションが無効です"));
}
UserModel user = (UserModel) session.getAttribute("loginInfo");
if (user == null) {
return ResponseEntity.status(401).body(ApiResponse.fail("ログインが必要です"));
}
return ResponseEntity.ok(ApiResponse.success(user));
}
}

View File

@ -0,0 +1,197 @@
package co.jp.mamol.myapp.controller;
import co.jp.mamol.myapp.common.ApiResponse;
import co.jp.mamol.myapp.form.BuyApprovalForm;
import co.jp.mamol.myapp.form.OrderDeliverForm;
import co.jp.mamol.myapp.model.DepartmentModel;
import co.jp.mamol.myapp.model.SizaiModel;
import co.jp.mamol.myapp.model.UserModel;
import co.jp.mamol.myapp.service.OrderDeliverService;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api")
public class OrderDeliverController {
private final OrderDeliverService orderDeliverService;
@Autowired
public OrderDeliverController(OrderDeliverService orderDeliverService) {
this.orderDeliverService = orderDeliverService;
}
private UserModel getLoginUser(HttpSession session) {
return (UserModel) session.getAttribute("loginInfo");
}
@GetMapping("/order/init")
public ResponseEntity<ApiResponse<OrderDeliverForm>> orderInit(HttpSession session){
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
List<DepartmentModel> deptList = orderDeliverService.deptList();
OrderDeliverForm orderDeliverForm = new OrderDeliverForm();
orderDeliverForm.setDeptList(deptList);
final String DEFAULT_DEPT_ID = "0001";
List<SizaiModel> sizaiList = orderDeliverService.approvaleList(DEFAULT_DEPT_ID);
orderDeliverForm.setSizaiList(sizaiList);
if (orderDeliverForm.getSizaiList() == null || orderDeliverForm.getSizaiList().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("指定部署の購入資材はありません。"));
}else {
session.setAttribute("deptId", orderDeliverForm.getDeptId());
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}
@PostMapping("/order/search")
public ResponseEntity<ApiResponse<OrderDeliverForm>> orderSearch(@RequestBody OrderDeliverForm orderDeliverForm, HttpSession session){
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
List<DepartmentModel> deptList = orderDeliverService.deptList();
orderDeliverForm.setDeptList(deptList);
List<SizaiModel> sizaiList = orderDeliverService.approvaleList(orderDeliverForm.getDeptId());
orderDeliverForm.setSizaiList(sizaiList);
if (orderDeliverForm.getSizaiList() == null || orderDeliverForm.getSizaiList().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("指定部署の購入資材はありません。"));
}else {
session.setAttribute("deptId", orderDeliverForm.getDeptId());
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}
@PostMapping("/order/act")
public ResponseEntity<ApiResponse<OrderDeliverForm>> orderAct(@RequestBody OrderDeliverForm orderDeliverForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
String deptIdStr = orderDeliverForm.getDeptId();
if (deptIdStr == null || deptIdStr.isBlank()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("部署IDが指定されていません。"));
}
boolean flag = orderDeliverService.orderAct(orderDeliverForm.getId());
if (!flag) {
return ResponseEntity.badRequest().body(ApiResponse.fail("発注失敗しました。"));
}else {
orderDeliverForm.setDeptId((String) session.getAttribute("deptId"));
List<DepartmentModel> deptList = orderDeliverService.deptList();
List<SizaiModel> sizaiList = orderDeliverService.approvaleList(orderDeliverForm.getDeptId());
orderDeliverForm.setDeptList(deptList);
orderDeliverForm.setSizaiList(sizaiList);
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}
@GetMapping("/delever/init")
public ResponseEntity<ApiResponse<OrderDeliverForm>> deleverInit(HttpSession session){
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
OrderDeliverForm orderDeliverForm = new OrderDeliverForm();
List<DepartmentModel> deptList = orderDeliverService.deptList();
orderDeliverForm.setDeptList(deptList);
final String DEFAULT_DEPT_ID = "0001";
List<SizaiModel> sizaiList = orderDeliverService.orderedList(DEFAULT_DEPT_ID);
orderDeliverForm.setSizaiList(sizaiList);
if (orderDeliverForm.getSizaiList() == null || orderDeliverForm.getSizaiList().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("指定部署の購入資材はありません。"));
}else {
session.setAttribute("deptId", orderDeliverForm.getDeptId());
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}
@PostMapping("/delever/search")
public ResponseEntity<ApiResponse<OrderDeliverForm>> deleverSearch(@RequestBody OrderDeliverForm orderDeliverForm, HttpSession session){
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
List<DepartmentModel> deptList = orderDeliverService.deptList();
orderDeliverForm.setDeptList(deptList);
List<SizaiModel> sizaiList = orderDeliverService.orderedList(orderDeliverForm.getDeptId());
orderDeliverForm.setSizaiList(sizaiList);
if (orderDeliverForm.getSizaiList() == null || orderDeliverForm.getSizaiList().isEmpty()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("指定部署の購入資材はありません。"));
}else {
session.setAttribute("deptId", orderDeliverForm.getDeptId());
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}
@PostMapping("/delever/act")
public ResponseEntity<ApiResponse<OrderDeliverForm>> deleverAct(@RequestBody OrderDeliverForm orderDeliverForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
String deptIdStr = orderDeliverForm.getDeptId();
if (deptIdStr == null || deptIdStr.isBlank()) {
return ResponseEntity.badRequest().body(ApiResponse.fail("部署IDが指定されていません。"));
}
boolean flag = orderDeliverService.deleverAct(orderDeliverForm.getId());
if (!flag) {
return ResponseEntity.badRequest().body(ApiResponse.fail("納品失敗しました。"));
}else {
orderDeliverForm.setDeptId((String) session.getAttribute("deptId"));
List<DepartmentModel> deptList = orderDeliverService.deptList();
List<SizaiModel> sizaiList = orderDeliverService.orderedList(orderDeliverForm.getDeptId());
orderDeliverForm.setDeptList(deptList);
orderDeliverForm.setSizaiList(sizaiList);
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}
@GetMapping("/delever/qr")
public ResponseEntity<ApiResponse<OrderDeliverForm>> qrCode(@RequestParam("id") int id,HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"3".equals(user.getRole_class()) || !"5".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
OrderDeliverForm orderDeliverForm = new OrderDeliverForm();
orderDeliverForm.setId(id);
return ResponseEntity.ok(ApiResponse.success(orderDeliverForm));
}
}

View File

@ -0,0 +1,149 @@
package co.jp.mamol.myapp.controller;
import co.jp.mamol.myapp.common.ApiResponse;
import co.jp.mamol.myapp.form.StoreForm;
import co.jp.mamol.myapp.model.SizaiModel;
import co.jp.mamol.myapp.model.SoukoModel;
import co.jp.mamol.myapp.model.UserModel;
import co.jp.mamol.myapp.service.StoreService;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api")
public class StoreController {
private final StoreService storeService;
@Autowired
public StoreController(StoreService storeService) {
this.storeService = storeService;
}
private UserModel getLoginUser(HttpSession session) {
return (UserModel) session.getAttribute("loginInfo");
}
@GetMapping("/inStore/init")
public ResponseEntity<ApiResponse<StoreForm>> inStoreInit(HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"4".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
StoreForm storeForm = new StoreForm();
return ResponseEntity.ok(ApiResponse.success(storeForm));
}
@PostMapping("/inStore/search")
public ResponseEntity<ApiResponse<StoreForm>> inStoreSearch(@RequestBody StoreForm storeForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"4".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
SizaiModel sizai = new SizaiModel();
sizai = storeService.getSizaiById(storeForm.getId());
if (sizai == null || storeForm.getId() == 0) {
return ResponseEntity.badRequest().body(ApiResponse.fail("資材存在しません。"));
}
storeForm.setSizai(sizai);
List<SoukoModel> soukoList = storeService.getSoukoList();
storeForm.setSoukoList(soukoList);
if (soukoList == null || soukoList.size() == 0) {
return ResponseEntity.badRequest().body(ApiResponse.fail("倉庫リスト取得失敗しました。"));
}
return ResponseEntity.ok(ApiResponse.success(storeForm));
}
@PostMapping("/inStore/act")
public ResponseEntity<ApiResponse<StoreForm>> inStoreAct(@RequestBody StoreForm storeForm,HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"4".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
if (!"5".equals(storeForm.getSizai().getStatus())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("資材の状態は「納品済」ではないため、入庫できません。"));
}else {
boolean inStoreFlag = storeService.inStoreAct(storeForm.getSizai());
if (!inStoreFlag) {
return ResponseEntity.badRequest().body(ApiResponse.fail("入庫失敗しました。"));
}
}
SizaiModel sizai = storeService.getSizaiById(storeForm.getSizai().getId());
storeForm.setSizai(sizai);
return ResponseEntity.ok(ApiResponse.success(storeForm));
}
@GetMapping("/outStore/init")
public ResponseEntity<ApiResponse<StoreForm>> outStoreInit(HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"4".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
StoreForm storeForm = new StoreForm();
return ResponseEntity.ok(ApiResponse.success(storeForm));
}
@PostMapping("/outStore/search")
public ResponseEntity<ApiResponse<StoreForm>> outStoreSearch(@RequestBody StoreForm storeForm, HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"4".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
SizaiModel sizai = new SizaiModel();
sizai = storeService.getSizaiById(storeForm.getId());
if (sizai == null || storeForm.getId() == 0) {
return ResponseEntity.badRequest().body(ApiResponse.fail("資材存在しません。"));
}
storeForm.setSizai(sizai);
List<SoukoModel> soukoList = storeService.getSoukoList();
storeForm.setSoukoList(soukoList);
if (soukoList == null || soukoList.size() == 0) {
return ResponseEntity.badRequest().body(ApiResponse.fail("倉庫リスト取得失敗しました。"));
}
return ResponseEntity.ok(ApiResponse.success(storeForm));
}
@PostMapping("/outStore/act")
public ResponseEntity<ApiResponse<StoreForm>> outStoreAct(@RequestBody StoreForm storeForm,HttpSession session) {
UserModel user = getLoginUser(session);
if (user == null || !"4".equals(user.getRole_class())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("ログイン情報が無効です。再度ログインしてください。"));
}
if (!"6".equals(storeForm.getSizai().getStatus())) {
return ResponseEntity.badRequest().body(ApiResponse.fail("資材の状態は「入庫済」ではないため、出庫できません。"));
} else {
boolean outStoreFlag = storeService.outStoreAct(storeForm.getSizai());
if (!outStoreFlag) {
return ResponseEntity.badRequest().body(ApiResponse.fail("出庫失敗しました。"));
}
}
SizaiModel sizai = storeService.getSizaiById(storeForm.getSizai().getId());
storeForm.setSizai(sizai);
return ResponseEntity.ok(ApiResponse.success(storeForm));
}
}